社区
语言基础/算法/系统设计
帖子详情
【求助】简体->繁体转换表及其使用方法
马行空牛耕田
2007-04-26 10:20:01
如题,求将简体unicode编码转成对应繁体big5编码的转换表及其使用方法,不够可再加分!
...全文
892
9
打赏
收藏
【求助】简体->繁体转换表及其使用方法
如题,求将简体unicode编码转成对应繁体big5编码的转换表及其使用方法,不够可再加分!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
linghengmao
2007-06-04
打赏
举报
回复
有谁知道如何判断某个字是属于GBK繁体还是属于BIG5呀?
ahjoe
2007-04-29
打赏
举报
回复
不好意思,搞错了
laihongbo524提供的代码已经可以生成 Big5码了。
ahjoe
2007-04-29
打赏
举报
回复
以GB2312编码范围为例
1. 制造一个GB2312所有字符的文件,并给每个字符留下存储转码的空间
类似结构
record
cChar1: array [0..1] of Byte;//现在保存GB2312(最终将保存Unicode简体)
cChar2: array [0..1] of Byte;//保存目标编码
end;
2. 利用laihongbo524的代码实现简繁转换, 转换后的繁体字保存在cChar2位置
3. 将简体字与繁体字都转成Unicode, 在Windows里要进行本地编码与Unicode的转换就很简单了
s: string
ws: WideString
ws := s;
转换后, 保存Unicode简体在cChar1位置, Unicode繁体在 cChar2位置
4. 在Big5系统下,再将cChar2位置的Unicode繁体字转成Big5编码,也是一样简单
s: string
ws: WideString
s := ws;
转换后,保存Big5繁体在cChar2位置。
5. 对最终生成的 Unicode -> Big5表按Unicode进行排序, 以加快使用时的查找速度
ahjoe
2007-04-29
打赏
举报
回复
在简体中文Windows里试了一下, laihongbo524(风铃夜思雨) 提供的代码可以实现在GBK编码范围内的简繁字转换。有了这个要做一个Unicode转Big5的表也不难了。
马行空牛耕田
2007-04-27
打赏
举报
回复
顶一下
马行空牛耕田
2007-04-27
打赏
举报
回复
To ahjoe:
我找到了,还带转换程序的,但是转换一点效果都没有
To laihongbo524:
你的方法是GBK的简体转换为GBK的繁体的,编码仍然是GBK,在繁体平台显示仍然是乱码,我试过了的。 所以一定要找到GBK到Big5的转换表,而不是只简单的在GBK内部转!
laihongbo524
2007-04-27
打赏
举报
回复
Function Big52GB(BIG5Str: String): AnsiString;
{进行big5转GB内码}
Var
Len: Integer;
pBIG5Char: PChar;
pGBCHSChar: PChar;
pGBCHTChar: PChar;
pUniCodeChar: PWideChar;
Begin
//String -> PChar
pBIG5Char := PChar(BIG5Str);
Len := MultiByteToWideChar(950, 0, pBIG5Char, -1, Nil, 0);
GetMem(pUniCodeChar, Len * 2);
ZeroMemory(pUniCodeChar, Len * 2);
//Big5 -> UniCode
MultiByteToWideChar(950, 0, pBIG5Char, -1, pUniCodeChar, Len);
Len := WideCharToMultiByte(936, 0, pUniCodeChar, -1, Nil, 0, Nil, Nil);
GetMem(pGBCHTChar, Len * 2);
GetMem(pGBCHSChar, Len * 2);
ZeroMemory(pGBCHTChar, Len * 2);
ZeroMemory(pGBCHSChar, Len * 2);
//UniCode->GB CHT
WideCharToMultiByte(936, 0, pUniCodeChar, -1, pGBCHTChar, Len, Nil, Nil);
//GB CHT -> GB CHS
LCMapString($804, LCMAP_SIMPLIFIED_CHINESE, pGBCHTChar, -1, pGBCHSChar, Len);
Result := String(pGBCHSChar);
FreeMem(pGBCHTChar);
FreeMem(pGBCHSChar);
FreeMem(pUniCodeChar);
End;
Function GB2Big5(GBStr: String): AnsiString;
{进行GB转BIG5内码}
Var
Len: Integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
pUniCodeChar: PWideChar;
pBIG5Char: PChar;
Begin
pGBCHSChar := PChar(GBStr);
Len := MultiByteToWideChar(936, 0, pGBCHSChar, -1, Nil, 0);
GetMem(pGBCHTChar, Len * 2 + 1);
ZeroMemory(pGBCHTChar, Len * 2 + 1);
//GB CHS -> GB CHT
LCMapString($804, LCMAP_TRADITIONAL_CHINESE, pGBCHSChar, -1, pGBCHTChar, Len * 2);
GetMem(pUniCodeChar, Len * 2);
ZeroMemory(pUniCodeChar, Len * 2);
//GB CHT -> UniCode
MultiByteToWideChar(936, 0, pGBCHTChar, -1, pUniCodeChar, Len * 2);
Len := WideCharToMultiByte(950, 0, pUniCodeChar, -1, Nil, 0, Nil, Nil);
GetMem(pBIG5Char, Len);
ZeroMemory(pBIG5Char, Len);
//UniCode -> Big5
WideCharToMultiByte(950, 0, pUniCodeChar, -1, pBIG5Char, Len, Nil, Nil);
Result := String(pBIG5Char);
FreeMem(pBIG5Char);
FreeMem(pGBCHTChar);
FreeMem(pUniCodeChar);
End;
Function GBCht2Chs(GBStr: String): AnsiString;
{进行GBK繁体转简体}
Var
Len: Integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
Begin
pGBCHTChar := PChar(GBStr);
Len := MultiByteToWideChar(936, 0, pGBCHTChar, -1, Nil, 0);
GetMem(pGBCHSChar, Len * 2 + 1);
ZeroMemory(pGBCHSChar, Len * 2 + 1);
//GB CHS -> GB CHT
LCMapString($804, LCMAP_SIMPLIFIED_CHINESE, pGBCHTChar, -1, pGBCHSChar, Len * 2);
Result := String(pGBCHSChar);
FreeMem(pGBCHSChar);
End;
Function GBChs2Cht(GBStr: String): AnsiString;
{进行GBK简体转繁体}
Var
Len: Integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
Begin
pGBCHSChar := PChar(GBStr);
Len := MultiByteToWideChar(936, 0, pGBCHSChar, -1, Nil, 0);
GetMem(pGBCHTChar, Len * 2 + 1);
ZeroMemory(pGBCHTChar, Len * 2 + 1);
//GB CHS -> GB CHT
LCMapString($804, LCMAP_TRADITIONAL_CHINESE, pGBCHSChar, -1, pGBCHTChar, Len * 2);
Result := String(pGBCHTChar);
FreeMem(pGBCHTChar);
End;
ahjoe
2007-04-27
打赏
举报
回复
有个工具 Big52GB.exe, 用它可以实现GB2312 与 BIG5相互转换,可以用来制作一个 GB2312 to BIG5转换表。
ahjoe
2007-04-27
打赏
举报
回复
如果你能找到 GB2312编码到BIG5转换的表,就容易制造出Unicode简体到BIG5转换表了。
因为,在Windows里Unicode简体到GB2312转换是小事一件。
linux常见命令
-->2004年10月04日用wget下载整个网站的
方法
wget -r -p -np -k http://202.38.75.11/~jbhuang/blog/kingpaul @ 06:40 PM 发
表
于 linux | 编辑 | 留言 (0) | TrackBack (0) -->2004年09月23日Linux下配置DHCP服务
EXCEL简
繁体
转换
工具:高效解决两岸数据交流问题
EXCEL简
繁体
转换
工具的用户界面被设计得直观易用,使得无论是新用户还是有经验的用户都能迅速上手。以下是用户界面的主要组成元素和功能:主菜单栏:位于界面顶部,包含了新建项目、打开项目、保存、
转换
设置、关于等常用功能入口。工作区域:这是用户执行操作的主要区域。你可以上传文件、选择
转换
模式、输入自定义词库、预览
转换
结果等。
转换
设置面板:位于工作区右侧,允许用户对
转换
选项进行详细设置,包括语言选择、格式调整、高级选项等。状态栏。
{电脑救助站}常用知识2
问题产生原因原因--解决
方法
内存条坏了--更换内存条
双内存不兼容--
使用
同品牌的内存或只用一条内存
内存质量问题--更换内存条
散热问题--加强机箱内部的散热
内存和主板没插好或和其它硬件不兼容等--重插内存或换个插糟
硬盘有问题--更换硬盘
驱动问题--重装驱动。如果是新系统,要先安装主板驱动
软件损坏--重装软件<
How-To-Ask-Questions-The-Smart-Way(提问的智慧)
原文:How To Ask Questions The Smart Way 翻译:王刚 <yafrank at 126 dot com > 时间:2013年10月26日 内容 github链接 目录 弃权申明 引言 提问前 提问时 仔细挑选论坛 面向新手的论坛和互联网中继聊天(IRC)通常响应最快 第二步,
使用
项目的邮件列
表
使用
有意义且明确的主题 使问...
游戏专用输入法的设计与实践
GB5码,即GB2312-1980(
简体
中文扩展字符集),是中文信息处理技术的重要里程碑。它基于汉字在汉字平面内的分布规律,采用双字节编码结构,每个字节分别用区码和位码来定位字根。这种编码方式可以覆盖大部分
简体
中文字符,包括汉字和一些特殊符号。区码用于确定字在哪个区间,位码用于确定字在该区间内的具体位置。举个例子,汉字“中”的GB5码为D6D0,其中D6为区码,代
表
该字位于第16区,D0为位码,代
表
该字是该区的第0号字。
语言基础/算法/系统设计
16,747
社区成员
33,239
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章