delphi显示多国语言的问题(200分)

  • 主题发起人 主题发起人 wutianlong
  • 开始时间 开始时间
W

wutianlong

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大侠,怎样才能在delphi的MEMO控件和listview等控件中显示日文,希腊文等他国语言呢?
问题是这样的,我做了一个邮件收发客户端管理系统,由于用户与国外客户有邮件来往,而国外客户有时发过来的邮件正文或附件名称中都包含有日文或希腊文等,这些字符在MEMO和LISTVIEW中根本无法正常显示.但我看了OUTLOOK可以,有谁知道OUTLOOK是怎样判断收到的邮件正文是哪因语言,然后又怎样显示该国语言的呢?
分数不多,送上200分,请各位大侠不吝赐,本人不胜感激.
 
我想应该和你操作系统有关
要安装多国语言包
 
好像有个API(GETACP)函数可以得到当前设备目前正在生效的ANSI代码页,但是我不知道怎么设置当前设备生效的ANSI代码页
唉,不知如何是好啊?
 
GETACP可以获取当前代码页,但这个函数没有逆函数的,也就是没有可以设置当前代码页的API。即使是Windows自己,也不能“即时”地改变当前代码页,在控制面板里面设置语言区域选项以后要重启系统才能生效的。
 
OUTLOOK显示多国语言的原理很简单:这个软件自己本身是Unicode的程序,而对方发送过来的邮件的头部有描述这个邮件所使用的编码字符集的信息,OUTLOOK要做的就是把收到的邮件文本内容的原始编码转换为Unicode编码,然后根据这些字符所属的语言(比如中文、日文、希腊文等)选择相应的字体来显示它们就可以。
 
哦,那要怎样才能判断当前字符串是哪国语言,并显示出该国相应的文字呢?
 
“字符串”--比如Delphi的string变量--本身是不能描述它属于哪知语言的。电子邮件是一种格式文本,它有描述它所使用的编码字符集的语法。
 
用 tnt控件 可以解决这个问题, 你可以去 delphibox 下载
 
golden_future说得不错
我公司的产品也是用TNT来解决多语言乱码的问题.
 
delphi 控件不支持unicode
tnt可以支持
unicode字符要用 WideString
 
哦,我先试试tnt控件看看,不过不知道邮件里的各国编码字符集的代号是什么,我只知道几个,比如"iso-8859-7"是希腊文,但其他文字呢?不过还是先谢谢各位,问题解决后马上加分!
 
各位兄弟,我试过TNT控件了,还是不行呀
 
要用widestring
 
各位大侠,问题还没解决呀!
 
要用widestring
 
我知道要用widestring,我试了,还是不行,现在问题是邮件里的附件名称如果是希腊文,而且是用base64编码的,但我解码出来后,就是一大堆"???",我用FOXMAIL收到的邮件在附件栏里显示的也是"??",只有OUTLOOK是正常的,不知哪位大侠做过类似的邮件客户端,有碰到这样的问题.
 
唉,还是没人回答呀;
Content-Type: image/jpeg;
name="=?iso-8859-7?B?xOnh9tzt5enhNC5KUEc=?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="=?iso-8859-7?B?xOnh9tzt5enhNC5KUEc=?="
上面的FileName 就是希腊文,我现在解码解开后就变成:"拈狯茼彘?.JPG"
而正确的应该是:Διαφάνεια1.JPG
哪位大侠能解决这个问题,帮帮忙呀,分不够可以再加
 
后退
顶部