簡體   English   中英

是否可以在DataMatrix 2D條形碼中表示超出ASCII的字符? (Unicode的?)

[英]Is it possible to represent characters beyond ASCII in DataMatrix 2D barcode? (unicode?)

Wikipedia上的DataMatrix文章提到默認情況下它僅支持ASCII。 它還提到了一種用於Base256編碼的特殊模式,該模式應該能夠表示任意字節值。

但是,到目前為止,我嘗試過的所有條形碼生成器庫都支持將數據輸入為字符串,並顯示ASCII以外字符(Onbarcode和Barcodelib)的錯誤。 也沒有辦法輸入Base256模式所需的byte []。

是否有支持Base256模式的條形碼生成器庫? (最好是帶有支持的商業圖書館)

將Unicode字符串轉換為Base64並在掃描數據后從base64解碼將是一種方法,但是還有其他方法嗎?

盡管有可能存在一些陷阱:1)它取決於您編寫應用程序所用的語言(跨編程語言的不同DM庫有不同的綁定。例如,* nix-相關環境(幾乎使用Maemo / MeeGo / Tizen上的所有條形碼掃描儀/生成器,某些WinPhone應用程序,KDE東西等等,使用它)都稱為[libdmtx] [1]。據我測試,編碼並解碼包含消息的消息unicode很好,但是它不能正確標記編碼的消息(“嘿,其他讀者,這里是unicode!”),因此,像許多專有掃描器一樣,[ZXing] [2]之類的其他庫也對該unicode進行解碼消息為ASCII。

到目前為止,正如我與[ZXing] [2]的作者討論的那樣,適當的標記可能是ECI段(第一個代碼字為0d241字節,后跟“ 0d26”字節(對於UTF-8))。 雖然,這是一種理論上的解決方案,但基於QR碼的這種解決方案,而未針對DataMatrix進行任何形式的標准化(而且[libdmtx] [1]和[ZXing] [2]均不支持使用此類標記進行編碼 ,盡管,以這種方式有一些步驟。

因此,TL; DR:如果您打算僅在應用程序之間使用生成的代碼(帶有unicode消息),那么您正在編寫-您可以自由地使用[libdmtx] [1]進行雙方的編碼和解碼,它將可以正常工作:)如果不能,請嘗試-在您的語言中尋找[zxing] [2]端口(並確保該端口支持編碼)。

1:github.com/dmtx/libdmtx

2:github.com/zxing/zxing

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM