mirari 发表于 2012-4-17 21:19

【死程】unicode和字库的关系是怎样的?

一个程序使用utf8编码,是否即意味着它可以显示全球所有现有符号?

现在的项目有一个土耳其语的信息平台模块,需要实现从PC上的flash界面发送信息给一台远程的设备。
flash默认采用utf8编码,但C++用的是ascii,传输中文都正常,但土耳其字母经过这一层就会出现乱码。
那台远程设备是土耳其语的,据说是支持utf8,但是传输中文字符或者全角的逗号句号省略号都无法显示。

因为C++那一层的缺陷,无法直接确认传输土耳其字符是否正常。求指教,我现在想确定的是那套无法显示中文全角字符远程设备到底是否如声称的一样是utf8……

krw 发表于 2012-4-17 21:22

utf8只能让程序认识这些符号,但是显示出来需要相应的字体

HyperIris 发表于 2012-4-17 21:22

Mr.Hat 发表于 2012-4-17 21:25

可以用MultiBytesToWideChar和WideCharToMultiBytes把ascii转成utf8。你当然要保证传过去的字符串是utf8的。大部分中文在utf8下面是三个字节。

ov_efly 发表于 2012-4-17 21:27

支持是一回事
显示是另一回事   
土耳其语有中文字体了 ?

鸡蛋灌饼 发表于 2012-4-17 22:57

引用楼主mirari于2012-04-17 21:19发表的 【死程】unicode和字库的关系是怎样的? :
一个程序使用utf8编码,是否即意味着它可以显示全球所有现有符号?

现在的项目有一个土耳其语的信息平台模块,需要实现从PC上的flash界面发送信息给一台远程的设备。
flash默认采用utf8编码,但C++用的是ascii,传输中文都正常,但土耳其字母经过这一层就会出现乱码。
那台远程设备是土耳其语的,据说是支持utf8,但是传输中文字符或者全角的逗号句号省略号都无法显示。
....... images/back.gif

能用Unicode写程序么?
不想折腾UTF-16你好歹用UTF-8过这一趟啊,全转成GBK搞毛——这还是要考虑i18n问题的软件。

PS:想起一个搞笑的,当初用EasyTAG批量给mp3 tag转码,结果这货自己先乱码了
引用第4楼ov_efly于2012-04-17 21:27发表的  :
支持是一回事  
显示是另一回事    
土耳其语有中文字体了 ?
images/back.gif

Windows 7默认字体都装全了的
XP要装东亚语言支持

某些XP精简版连显示日文都要再补点东西。
引用第3楼Mr.Hat于2012-04-17 21:25发表的:
可以用MultiBytesToWideChar和WideCharToMultiBytes把ascii转成utf8。你当然要保证传过去的字符串是utf8的。大部分中文在utf8下面是三个字节。 images/back.gif

没用
从Flash到GBK就丢东西了,再转UTF-8也没有意义

mirari 发表于 2012-4-18 08:10

C++是同事写的,说是建立项目的时候用的是双字节,现在改成unicode会有一堆错,暂时动不了

原来windows下才有可以让不同语言显示所有字符的字体,了解了……

现在的解决办法只有让C++的同事改了,之前的解决方案是做了个二次编码把utf8转换成了URLcode,让接收终端在显示的时候再转回来。不过这样一来受通讯协议限制,发送的字符数被大大减少了,显示速度也受影响

idler1984 发表于 2012-4-18 08:37

建立项目的时候用的是双字节,现在改成unicode会有一堆错
其实就是建立项目的时候完全没有考虑过i18n吧

mirari 发表于 2012-4-18 10:42

没错……没考虑过多语言,没考虑过XP以上的平台,连flashplayer也是万年10.3
页: [1]
查看完整版本: 【死程】unicode和字库的关系是怎样的?