この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
管理区域
›
苦情の提案
›
ごみ箱
›
ZXingを使って中国語の乱れた文字でQRコードをスキャンする問題について...
眺める:
11144
|
答える:
2
ZXを使ってQRコードをスキャンした際の中国語の文字が乱れる問題について
[リンクをコピー]
管理者
掲載地 2015/03/08 23:36:08
|
|
|
最近のプロジェクトの機能には、スキャンQRコードの使用が必要です。 私はGoogleのオープンソースプロジェクトZXingについて言及しています: 機能完了後: バーコードをスキャンしても問題はなかったことがわかりました: しかし、QRコードをスキャンすると、いくつかは乱れています: あるいは中国の質問ではないかもしれません: インターネットの多くの情報を参考にしました。 しかし、それでも効果は理想的ではありません: 後に、ISO-8859-1の形式でエンコードされている限り、結果は取り出され、それに応じて変換されることが判明しました。 問題は解決しました。 ソースコードを修正する必要はありません。こちらがその方法です
まず:まずCaptureActivityクラスでデフォルトのエンコーディングを設定しました
decodeFormats = null;
characterSet = "ISO-8859-1";
コードをコピーします
次に、結果を取得するアクティビティの対応するエンコーディングを変換します。 こちらはResultActivityクラスで取り組んでいます
public class ResultActivity extends Activity implements OnClickListener{
private TextView dec_result;
private String resultStr;
private ImageView codeImage;
private Button returnChoujiang,returnJubao;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.dec_result);
init();
dec_result=(TextView)findViewById(R.id.dec_result);
codeImage=(ImageView)findViewById(R.id.code_image);
Intent intent=getIntent();
resultStr=intent.getStringExtra("result");
String UTF_Str="";
String GB_Str="";
boolean is_cN=false;
try {
System.out.println("------------"+resultStr);
UTF_Str=new String(resultStr.getBytes("ISO-8859-1"),"UTF-8");
System.out.println("这是转了UTF-8的"+UTF_Str);
is_cN=IsChineseOrNot.isChineseCharacter(UTF_Str);
//防止有人特意使用乱码来生成二维码来判断的情况
boolean b=IsChineseOrNot.isSpecialCharacter(resultStr);
if(b){
is_cN=true;
}
System.out.println("是为:"+is_cN);
if(!is_cN){
GB_Str=new String(resultStr.getBytes("ISO-8859-1"),"GB2312");
System.out.println("这是转了GB2312的"+GB_Str);
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Bitmap bm=intent.getParcelableExtra("IMG_return");
if(is_cN){
dec_result.setText(UTF_Str);
}else{
dec_result.setText(GB_Str);
}
codeImage.setImageBitmap(bm);
returnChoujiang.setOnClickListener(this);
returnJubao.setOnClickListener(this);
}
コードをコピーします
第三に、以下はそれがUnicodeエンコーディングに属しているかどうかを判断するためです
public class IsChineseOrNot {
public static final boolean isChineseCharacter(String chineseStr) {
char[] charArray = chineseStr.toCharArray();
for (int i = 0; i < charArray.length; i++) {
//是否是Unicode编码,除了"�"这个字符.这个字符要另外处理
if ((charArray[i] >= '\u0000' && charArray[i] < '\uFFFD')||((charArray[i] > '\uFFFD' && charArray[i] < '\uFFFF'))) {
continue;
}
else{
return false;
}
}
return true;
}
public static final boolean isSpecialCharacter(String str){
//是"�"这个特殊字符的乱码情况
if(str.contains("�")){
return true;
}
return false;
}
}
コードをコピーします
最後に、これにより中国の混乱したZX問題が解決されます
先の:
PHPはQRコードの例を生成します
次に:
360 Website Guardがウェブサイト最適化に与える影響は何ですか?
関連記事
•
VS 2022パッケージ管理コンソール 中国語の乱雑なソリューション
•
QRCODEについて QRコードのフォールトトレランスレベル
•
ZEBRAゼブラプリンター情報
•
jQuery(JS)は中国語入力方式が完全かどうかを判定します
•
C# 中国語の漢字は簡体字と繁体字の間で変換されます
•
Google Chromeは7月9日から世界的にPremium Ads標準をサポートします
•
【オリジナル】Google AdSense送金回収チュートリアル
•
Spring Bootはバックグラウンドでjsonを返す問題を解決しますが、返すための変換器は見つかりません...
•
Google AdSenseの広告バランス機能
•
春のブーツ中国語の文字が乱れる問題を解決する
lele52099
掲載地 2015/09/04 13:20:39
|
とても力強い
試験
掲載地 2015/09/04 15:04:46
|
lele52099 2015年9月4日 13:20 投稿
とても力強い
なぜそんな表情をしているのですか?
閲覧したセクション
ウェブサイト構築
適用分野
ネットワーク技術
オラクル
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com