utf8转gbk编码

2019-07-20 04:19发布

本帖最后由 Psheng 于 2018-12-28 19:54 编辑

utf8_2_gbk.rar (46.1 KB, 下载次数: 12, 售价: 1 金钱) 2018-12-28 18:47 上传 点击文件名下载附件

unicode(16进制)              UTF-8 字节流(二进制)
0000 - 007F                           0xxxxxxx
0080 - 07FF                          110xxxxx 10xxxxxx
0800 - FFFF                          1110xxxx 10xxxxxx 10xxxxxx



代码思路为先判断是否为utf8格式,不是则跳过该数据,并且错误次数加一。
是utf8格式这将其转化成unicode编码后 ,然后将unicode编码减去0x4e00(unicode编码中第一个汉字编码),
得到汉字的偏移值后带入unicode2gbk数组得到GBK编码。

unicode2gbk数组中有以unicode编码顺序所对应的GBK汉字编码(删掉了非汉字的gbk码),

调用这个函数就可以完成转换 u8 utf8_2_gbk(utf8_2_gbk_t *u2g)
/*
*功能   :将utf8的字符转换成gbk字符
*utf    :输入的utf数组
*gbk    :输出转化后的gbk数组
*utfnum :输出utf数组转换的个数
*gbknum :输出gbk数组转换的个数
*返回值 :表示字符错误次数

* 其中的utf数组和gbk数组都是按照大端储存的
* 如数据 0x4e01 0x1234 内存布局
* 地址:  0        1         2       3
* 数据: 0x4e  0x01   0x12   0x34
*/

gbk.rar (519.18 KB, 下载次数: 15) 2018-12-28 19:41 上传 点击文件名下载附件 这个是从网上的博主下载的转换对照Excel表格,
地址忘记了。。找到了再贴



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。