2012-11-19 38 views
0

我試圖用ZXing創建QR條碼生成器。我想編碼的QR碼MECODE對象:http://www.nttdocomo.co.jp/english/service/developer/make/content/barcode/function/application/addressbook/index.htmlZXing有創建QRCode的非法字符嗎?

我有這樣的代碼

 bitMatrix = writer.encode(mecard, BarcodeFormat.QR_CODE, 300, 300); 
     BufferedImage img = MatrixToImageWriter.toBufferedImage(bitMatrix); 

     ByteArrayOutputStream os = new ByteArrayOutputStream(); 
     OutputStream b64 = new Base64.OutputStream(os); 
     ImageIO.write(img, "png", b64); 
     String result = os.toString("UTF-8"); 

創建文本和URL時產生正確的輸出。但是,當我嘗試編碼"MECARD:N:Doe,John;TEL:(+32) 472 65 58 20;TEL:(+32) 2 577 50 68;EMAIL:[email protected];;" 它給出一個無效的Base64字符串。是否有一些編碼器無法處理的非法字符?

+1

如果錯誤是基於64位編碼,那麼它發生在您將圖像數據寫入Base 64數據的位置(爲什麼?),這是在使用zxing之後與其無關。你爲什麼認爲它與編碼數據有關? –

+0

我確實發現了這個問題。但我自己也不能回答。 MECARD規格不允許多個TEL部件。 – Arninja

回答

0

問題在於MECARD規範。 MECARD只允許一個TEL部分。我想用兩個。就是這樣