谁有关于汉字内码转换的源码?(50分)

Z

zag2000

Unregistered / Unconfirmed
GUEST, unregistred user!
发一份我好吗?
 
如果是GB->BIG5的话,vcl.vclxx.com上有。
 
to Chenlili:
你提供的URL无法连上,请详细一点好吗?
 
附加功能 将问题提前
 
汉字内码转换是个很复杂的问题,你提的问题跟没提一样。
因为编码方式太多了,GB 就有4,5中之多,还有港台的big5, cjk,
微软的gbk, iso, unicode 等等,很多转换不是完全可逆的。
比如 big5->gb->big5 就可能得到的big 文本和原来big5的不同了。原因是big5字符集大于gb,
big5->gb 会损失一些字的编码,而gb->big5 最多能用到big5的6367个汉字。
又比如gbk 完全兼容(编码)gb2312,gb2312 是他的一个子集,同时big5中的汉字也包含在
gbk 中,不同的是big5 的编码不同了。所以gbk<=>gb或者 gbk<=>big5 可以无损失的转换。
但是gbk 不是国际标准,只有微软支持。还有涉及到unicode等等,
晕了吧?
找些这方面的书吧。
 
做gb->unicode,unicode->gb,big5->unicode,unicode->big5以后要转换,就先转换为
unicode,再转成自己想要的码。
 
请教一个问题:下面的第而句是什么样的编码
1、提供线索的通联电话
2、提供線索的通聯電話
3、矗ㄑ絬??硄羛筿杠
第三句是我用GB<->BIG5转换工具得到的结果,应该就就所谓的BIG5了吧,
那么第二句是什么呢?
 
第二句是GBK。
这些字是big5的繁体,但是内码已经变成gbk的了。
 
To: puzzle
不是很懂,大虾推荐什么站点或书让我去看看吧,Thankx
 
我有,想要发信来
 
发了个例子到你邮箱了。
 
什么例子?
另外,好象CVCode.pas中的
function isBIG5(value: string): Boolean;
function isGB(value: string): Boolean;
两函数是否有问题,他们的功能应该是判断一中文字是BIG5或GB,但不能正确判断,
以下是它的源代码:
function isGB(value: string): Boolean;
begin
if (length(value)>=2) then
begin
if (value[1] <= #161) and (value[1] >= #247) then
Result := false
else
if (value[2] <= #161) and (value[2] >= #254) then
Result := false
else
Result := true
end
else
Result := true;
end;

function isBIG5(value: string): Boolean;
begin
if (length(value)>=2) then
begin
if (value[1] < #161) then
Result := false
else
if ((value[2] >= #64) and (value[2] <= #126)) or ((value[2] >= #161) and (value[2] <= #254)) then
Result := true
else
Result := false
end
else
Result := false
end;
究竟判断一个中文字是GB还是Big5的简单方法是怎么。
 
多人接受答案了。
 
顶部