极端奇怪的汉字编码问题,使用ZBAR的库识别二维码时,中文乱码了

hpygzhx520 2015-10-28 12:12:01
如题,读取中文的时候乱码,拆解字节的时候发现对应关系如下:

c2;b4;c2;b2;床
c2;b5;c3;a6;垫
c3;83;c3;97;米

4个字节一个汉字。

百度一番后说ZBAR是日本人开发的,所以是日文编码,那么问题来了,怎么解决乱码的事情呢?

函数获取到的数据类型是const char *data,如何转换成可识别的中文?

谢谢各位。
...全文
590 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hpygzhx520 2015-10-29
  • 打赏
  • 举报
回复
最后还是使用修改过的ZBAR的DLL基本解决
worldy 2015-10-29
  • 打赏
  • 举报
回复
MultiByteToWideChar(932,.....) ??
赵4老师 2015-10-29
  • 打赏
  • 举报
回复
WinExec("ConvertZ /i:jis /o:gbk in.txt out.txt",SW_HIDE);
语法:convertz [CodeIn] <CodeOut> [Face] <FileIn> [FileOut]

[CodeIn]  输入编码 (可省略)

	参数	输入的编码方法
	----------------------------------------------
	/i:ule	Unicode Little Endian
	/i:ube	Unicode Big Endian
	/i:utf8	UTF-8
	/i:gbk	GBK
	/i:big5	Big5
	/i:jis	JIS (日文)
	/i:sjis	Shift-JIS (日文)
	/i:euc	EUC-JP (日文)

*在省略这参数的情况下,程式会自动侦测来源档案的编码。若果来源档案是 GBK 或 Big5 码,建议当档案里面有多于100个中文字时才用这功能,否则程式可能会错误判断编码。

<CodeOut>  输出编码

	参数	输出的编码方法
	-----------------------------------------------
	/o:ule	Unicode Little Endian
	/o:ube	Unicode Big Endian
	/o:utf8	UTF-8
	/o:gbk	GBK
	/o:big5	Big5
	/o:jis	JIS (日文)
	/o:sjis	Shift-JIS (日文)
	/o:euc	EUC-JP (日文)

[Face]   输出字体,预设值是 /f:d (可省略)

	参数	输出的字型
	-----------------------------------------------
	/f:t	繁体字型 (Traditional)
	/f:s	简体字型 (Simplified)
	/f:d	直接转换不做词汇修正

	输入编码	输出编码	预设值
	--------------------------------------------------
	GBK	Big5		繁体
	Big5	GBK		简体
	其它的编码转换		不变(用回原本的字体)

* 若果输出编码是 Big5  /f:s 参数无效
* 若输入或输出编码是 jis/shift-jis/euc-jp,/f:s 及 /f:t 参数皆无效

<FileIn>   输入档案的路径+名称,支援万用字符

[FileOut] 输出档案的路径+名称,支援万用字符(可省略)

* 在 FileOut 省略的情况下,转码结果会覆写到 FileIn
* 若档案名称包含空白格,须要在档名的前后两端加入双引号 (")

例体:

1) 	convertz /i:big5 /o:ule /f:s test1.txt test2.txt

上述指令会将 test.txt 的内容由 Big5 转为简体中文的 Unicode-LE 编码并将结果储存到 test2.txt。

2) 	convertz /i:utf8 /o:big5 *.*

上述指令将当前目录的所有档案由 utf-8 转做 big5 码,输出结果会覆写原来的档案。

3) 	convertz /o:ule /f:t k*.txt "D:\Temp Dir\*.abc"

上述指令会搜寻当前目录内所有档名首个字母是 k 及副档名是 txt 的档案,自动侦测它们的原来编码,
然后逐一转换成为繁体 Unicode-LE, 并另存到 'D:\Temp Dir' 目录,新档案名称跟原来档案相同但副档名会改做 abc。
hpygzhx520 2015-10-28
  • 打赏
  • 举报
回复
回1楼:我应该怎么做? 回2楼:我想用代码实现。 怎么办?谢谢
qinlj0 2015-10-28
  • 打赏
  • 举报
回复
“汉”族集团是由回族为主体,结合了几十个少数民族形成的,排名最前的家族为“刘”姓,“曹”姓、袁姓。 而中文字是胡族集团所发明的(其实多数是嬴政之父异人发明的)。胡族集团有蒙古族、藏族、傣族、傈傈族,还有满族、高丽族。 请汉人不要再恬不知耻地欺世盗名了。
赵4老师 2015-10-28
  • 打赏
  • 举报
回复
推荐使用ConvertZ软件进行汉字转码。
oyljerry 2015-10-28
  • 打赏
  • 举报
回复
你需要有对应的字符集编码的实现,然后通过这个来进行编码转换

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧