常见问题 TBarCode DLL / TBarCode Library
如何在 Han Xin Code 中编码中文字符?
如何在 Han Xin Code 中编码中文字符?
Han Xin Code 对使用 GB18030 字符集(根据字符不同使用 2-4 字节)编码中文字符提供了专门支持。
在 TBarCode Library 中的用法:
使用 Unicode 输入:
- 使用 BCSetCodePage 将代码页切换为 GB18030
- 使用 BCSetTextW 以 Unicode 格式*提供字符
*在 Windows 上为 UTF-16,在 Linux 上为 UTF-32,但不能是 UTF-8(!) - Unicode 输入将被转换为 GB18030 格式用于生成条码
示例:
BCSetCodePage(pBarCode, e_CodePage::eCodePage_GB18030); WCHAR unicode[] = L"数"; /*Unicode U+6570*/ BCSetTextW(pBarCode, unicode, wcslen(unicode));
⇒ 条码将包含 GB18030 字节序列 CA FD。条码阅读器应能将其读取为“数”。
使用 GB18030 输入:
- 使用 BCSetEncodingMode (pBC, eEncMode_LowByte or eEncMode_ByteStream) 关闭代码页转换
- 使用 BCSetTextA 以字节序列形式提供 GB18030 字符
- 这些字节将被“原样”编码,不进行任何进一步转换。
示例:
BCSetEncodingMode(pBarCode, eEncMode_ByteStream);
unsigned char bytes[] = { 0xCA, 0xFD }; /* GB18030 数 CAFD */
BCSetTextA(pBarCode, (LPCSTR) bytes, sizeof(bytes));
⇒ 条码阅读器应能将其读取为“数”
更多资源:
- Unicode 字符表: https://unicode-table.com
- 在线转换工具: https://r12a.github.io/app-encodings/
- 离线转换工具: https://www.microsoft.com/en-ca/download/details.aspx?id=40334
- 用于测试 Han Xin 中文字符的 Android 应用:Vintasoft Barcode Scanner(需先在二维选项中启用 Han Xin)