求UTF8转String的代码?(100分)

  • 主题发起人 主题发起人 computercsl
  • 开始时间 开始时间
C

computercsl

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有StrToUTF8的函数,但把字符串从繁体系统转到简体上就是乱码,求UTF8转String代码,请各位高手帮忙!如果能解决,再加分!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2254411
是字符串到Utf8的
 
我也想知道,学习来了
 
没有人回答吗?小弟很急呀!
 
Utf8ToUnicode

这个就行~~>
 
Mclkings :这个在两台电脑上,一台繁体,一台简体,在传数据的时候,我繁体电脑传简体电脑有问题啊,只是在同台电脑上这个函数可以用,换在几台电脑上相互发送就不行了
 
不用自己写代码的,用Delphi自带的Utf8ToAnsi函数就可以了。
 
韦剑,用Delphi自带的函数,而且用的是TnT控件,但传过来的还是乱码,我写简体字发给对方,对方接受的是对的,我写繁体字发给对方,对方接受繁体字是对的,对方发简体字给我的时候是乱码,很奇怪
 
如果对方用的是简体中文系统,你用的是繁体中文系统的话,那么不管你们的程序有没有使用Tnt控件和Unicode函数,都有可能会出现乱码的。因为对方的简体中文汉字在转换为你的繁体中文汉字的时候,你的程序处理的目标编码是string类型(也就是Ansi字符串),简化字在繁体中文里面没有对应的字符,就会出现乱码,这是很正常的。解决方法是不管对方还是你这边,程序里面一律按Unicode的方式来处理文本(即全部使用支持Unicode的界面组件,用WideString和WideChar来存储和文本数据,用支持Unicode的函数来处理文本数据)。
 
To:韦剑
按Unicode来处理UTF8字符,我刚才测试过,结果这样的:我在我的繁体操作系统上输入了
繁体字,写到了一个远程数据库里,数据库是My sql ,字段格式是文本格式,然后另外一个简体中文操作系统来读数据库的数据,用TNT控件显示的字符时繁体中文,不会有乱码,同样他在简体中文系统上打简体中文写到数据库,我的繁体系统读出来的结果是简体字,也不出现乱码,但是如果我在我的繁体系统上在TNT控件上用简体输入法输入简体中文写到数据库,那台简体中文系统读出来的就是乱码(有些文字是乱码),TNT控件在接受我的简体中文的时候已经是乱码,所以有这个问题,请问如何解决?等下分送上
 
啊,我明白你的工作过程了。问题出在你在繁体中文系统上用的那个简体中文输入法,因为那个输入法输出的文本所用的编码不是Unicode而是GBK(比如在繁体中文系统上用紫光拼音来输入就是这样了)的,所以Tnt显示的时候就会有乱码。解决的方法是用支持Unicode编码的简体中文输入法,如果你用五笔的话,可以考虑海峰。如果用拼音,可以考虑微软的拼音输入法(注:不是系统自带的全拼,而是Office套装里面的那个)。
 
能否用TNT判断输入法是GBK还是Unicode?如果是GBK,就转成Unicode
 
分已给,怎么没显示 ‘接受答案呢' ,呵呵,我现在在考虑怎么判断输入的是GBK编码,这个能判断吗?
 
Msn 有这个功能,我在MSn上打用简体输入法在繁体系统上打字传导任何地方都没问题
 
可以判断啊,不过不是在文本输入的界面控件里面判断,而是在输入法发送文本的时候就拦截下来并做出判断了。关于这个问题,建议你另开一个拦截输入法消息的帖子来讨论。
 
后退
顶部