📄 readme.txt
字号:
/***************************************************************************
* 函数名称: Utf16TOBig5
* 函数功能 : 将Utf16编码的字符转换为GB18030编码
* 接口描述:
*
* 输入参数:
* pu16InputCode - 输入的Utf16编码字符的存储地址
* pu8OutputCode - 供存放输出的BIG5编码字符的首地址
* pu8OutputLen - 供存放输出的BIG5编码字符字节数的地址
* 返回参数:CONVERT_OK - 转换成功 CONVERT_ERROR - 转换失败
* 转换成功时,输出的字符存放在pu8OutputCode,长度存放在pu8OutputLen
*
* 补充说明:
*****************************************************************************/
6) S8 Utf8TOBig5(U8* pu8InputCode, U8 u8InputLen, U8* pu8OutputCode, U8* pu8OutputLen)
/***************************************************************************
* 函数名称: Utf8TOBig5
* 函数功能 : 将Utf8编码的字符转换为BIG5编码
* 接口描述:
*
* 输入参数:
* pu8InputCode - 输入的Utf8编码字符的存储地址
* u8InputLen - 输入的Utf8编码字符的长度
* pu8OutputCode - 供存放输出的BIG5编码字符的首地址
* pu8OutputLen - 供存放输出的BIG5编码字符字节数的地址
* 返回参数:CONVERT_OK - 转换成功 CONVERT_ERROR - 转换失败
* 转换成功时,输出的字符存放在pu8OutputCode,长度存放在pu8OutputLen
*
* 补充说明:
*****************************************************************************/
7) U16 SearchCodeTable(U16 unicodeKey)
/***************************************************************************
* 函数名称: SearchCodeTable
* 函数功能 : 查表返回UTF16字符中对应4字节GB18030部分的后两字节
* 接口描述:
*
* 输入参数:
* unicodeKey - 输入的Utf16编码字符
*
* 返回参数:
* 查表成功时 返回的两字节查询结果以BigEndian格式合成一个非零的U16数
* 即所查询的GB18030编码第3字节对应返回值的高8位,第4字节对应低8位
* 查表失败时,返回值为0
*
* 补充说明: 使用两分法查找
*****************************************************************************/
8) PC端转换程序的主函数
main()
/**********************************************************************
* 函数名称:main
* 功能描述:
* 改函数为带命令参数的命令convertCode.exe的主函数
* 将根据输入的命令参数,转换一定编码的文件到另外一个编码文件
*
* 命令格式: convertCode 转换类型 输入文件 输出文件
* (如:convertCode UTF16_GB utftxt gbtxt)
* 其中的转换类型有:(格式为 源编码_目标编码)
* UTF16BE_GB
* UTF16LE_GB
* UTF8_GB
* BIG5_GB
* UTF16BE_BIG5
* UTF16LE_BIG5
* UTF8_BIG5
* GB_BIG5
*
* 接口描述
* 输入参数:
* argc 此值需为4,否则回显提示信息
* arg[],具体见命令格式
*
* 返回参数: 0--转换成功 非0--转换出错
***********************************************************************/
即命令格式:
convertCode (UTF16_GB/UTF16BE_GB/UTF8_GB/BIG5_GB/GB_BIG5/UTF16_BIG5/UTF8_BIG5) XXX(输入文件名) YYY(输出文件名)
4.项目移植
1) 实现常用汉字编码到GB18030编码的转换,移植到嵌入式系统固件,以便使用现有的GB18030字库
? 涉及文件为 ..\软件\X2GB.c
? 文件内部使用的宏
均为编码转换开关命名规则: _源码类型_目标嘛类型,其中GB表示GB18030码,如_GB_BIG5表示将GB18030编码转换为BIG5码
取值规则: 需要相应编码转换时将对应的宏定义为1,反之为0
#define _UTF16_GB 1
#define _UTF8_GB 1
#define _BIG5_GB 1
Big/Little ENDIAN 编码选择:
#define _BIG_ENDIAN 0
#define _LITTLE_ENDIAN 1
? 针对某项目移植的接口函数
U8 convertCode(U8 u8cmd, U8* pu8InputCodeH, U8* pu8InputCodeL, U16* pu8OutputCode)
/***************************************************************************
* 函数名称: convertCode
* 函数功能 : 在某项目中,将特定编码的字符转换为某专用转义的2字节GB18030编码
* 接口描述:
*
* 输入参数:
* U8 u8cmd - 输入编码选项 , =1时表示 BIG5
* pu8InputCodeH - 指针,指向输入的编码字符的高字节,但在UTF8情况下,pu8InputCodeH指向输入字节首地址,pu8InputCodeL里的值表示输入长度
* pu8InputCodeL - 指针,指向输入的编码字符的低字节,但在UTF8情况下,pu8InputCodeL里的值表示输入长度
* pu8OutputCode - 供存放输出的2字节GB18030编码字符的首地址
*
* 返回参数:CONVERT_OK - 转换成功 CONVERT_ERROR - 转换失败
* 转换成功时,输出的字符存放在pu8OutputCode,
* 同时因移植兼容性需要,(* pu8InputCodeH)与(* pu8InputCodeL)也被分别改为输出字符的高低字节
*
* 影响的参数:因移植兼容性需要,(* pu8InputCodeH)与(* pu8InputCodeL)被分别改写为输出字符的高低字节
*
*
* 补充说明: 某项目使用压缩的GB18030大字库,四字节代码映射到0x4000~0x5982
*
*****************************************************************************/
2)实现常用汉字编码到BIG5编码的转换,移植到嵌入式系统固件,以便使用现有的BIG5字库
? 涉及文件为 ..\软件\X2BIG5.c
? 文件内部使用的宏
编码转换开关命名规则: _源码类型_目标嘛类型,其中GB表示GB18030码,如_GB_BIG5表示将GB18030编码转换为BIG5码
取值规则: 需要相应编码转换时将对应的宏定义为1,反之为0
#define _UTF16_BIG5 1
#define _UTF8_BIG5 1
#define _GB_BIG5 1
Big/Little ENDIAN 编码选择:
#define _BIG_ENDIAN 0
#define _LITTLE_ENDIAN 1
? 针对某项目移植的接口函数
U8 convertCode2(U8 u8cmd, U8* pu8InputCodeH, U8* pu8InputCodeL, U16* pu8OutputCode)
/***************************************************************************
* 函数名称: convertCode2
* 函数功能 : 在某项目中,将特定编码的字符转换为BIG5编码
* 接口描述:
*
* 输入参数:
* U8 u8cmd - 输入编码选项 , =1时表示 GB18030->BIG5
* pu8InputCodeH - 指针,指向输入的编码字符的高字节,但在UTF8情况下,pu8InputCodeH指向输入字节首地址,pu8InputCodeL里的值表示输入长度
* pu8InputCodeL - 指针,指向输入的编码字符的低字节,但在UTF8情况下,pu8InputCodeL里的值表示输入长度
* pu8OutputCode - 供存放输出的2字节编码字符的首地址
*
* 返回参数:CONVERT_OK - 转换成功 CONVERT_ERROR - 转换失败
* 转换成功时,输出的字符存放在pu8OutputCode,
* 同时因移植兼容性需要,(* pu8InputCodeH)与(* pu8InputCodeL)也被分别改为输出字符的高低字节
*
* 影响的参数:因移植兼容性需要,(* pu8InputCodeH)与(* pu8InputCodeL)被分别改写为输出字符的高低字节
*
*****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -