2016-09-29 2 views
1

В моем приложении я генерирую QR-имя на арабском языке, а затем сканирую и использую библиотеку zxing для генерации, но кажется, что библиотека zxing не поддерживает арабский язык, потому что, когда я просматриваю сгенерированное имя, оно дает мне ???? , Каково решение?Сгенерируйте арабский QR-код

Это мой код для генерации:

BitMatrix bitMatrix = multiFormatWriter.encode(text2QR, BarcodeFormat.QR_CODE, 500, 500); 
BarcodeEncoder barcodeEncoder = new BarcodeEncoder(); 
bitmap = barcodeEncoder.createBitmap(bitMatrix); 
imageView = (ImageView) findViewById(R.id.imageView); 
imageView.setImageBitmap(bitmap); 

ответ

1

Я нашел решение:

MultiFormatWriter multiFormatWriter = new MultiFormatWriter(); 
Map<EncodeHintType, Object> hintMap = new EnumMap<EncodeHintType, Object>(EncodeHintType.class); 

hintMap.put(EncodeHintType.CHARACTER_SET, "UTF-8"); 
hintMap.put(EncodeHintType.MARGIN, 1); /* default = 4 */ 
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); 

BitMatrix bitMatrix = multiFormatWriter.encode(text2QR, BarcodeFormat.QR_CODE, 500, 500, hintMap); 
BarcodeEncoder barcodeEncoder = new BarcodeEncoder(); 
bitmap = barcodeEncoder.createBitmap(bitMatrix); 
imageView = (ImageView) findViewById(R.id.imageView); 
imageView.setImageBitmap(bitmap); 
0

не забудьте установить кодировку текста. Hashtable hints = new Hashtable(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8");

так, основанный на коде должно быть multiFormatWriter.encode(text2QR, BarcodeFormat.QR_CODE, 500, 500, hints);

+0

не работала, та же проблема –

+0

@MarkMamdouh как вы расшифровать закодированное QRCode? возможно ли, что сканер/считыватель не поддерживает unicode/arabic? – hakim

+0

Я пытался читать арабский язык, и это сработало, но проблема в его создании –

Смежные вопросы