即时通讯工具msn可以做到不受操作系统内码的影响,正确显示用户的输入信息,想请问一下如何可以实现这种效果。比如我的系统内码是日文,朋友系统内码是中文,朋友发给我一段中文信息,在msn我可以正确接收到这段信息,而在qq里面现实就是乱码。qq为什么是乱码很容易理解,但是msn是如何做到正确显示的呢?而且我可以在msn中同时输入中文日文以及其他语言,还是可以正确显示,不太明白实现的原理,请教。

解决方案 »

  1.   

    学习猜想:是不是msn根据数据包头或者其它的什么做了转换?
      

  2.   

    msn有可能将字符图像化处理的,他不是直接可以在里面手写发送的吗具体不清楚,呵呵
      

  3.   

    仔细阅读你机器上的这段コントロールパネル>地域ど言語のオプション>詳細設定>Unicode対応でないプログラムの言語windows nt支持unicode编码,只有在这个程序不支持unicode的时候,才使用这个“Unicode対応でないプログラムの言語”里面的编码。你的windows虽然是日文的,但是如果把这里设置为”中国語(中国)” ,QQ也能正常显示,同样,我的windows是中文的,但是由于工作需要,把这里设置成了“日语”,绝大部分的日文程序都可以正常使用。从这一点来看,QQ也是一个技术很落后的产品
      

  4.   

    另外,MS推出了一个叫AppLocale的产品,很多程序可以用它来消除乱码情况
      

  5.   

    To shine333:我想您误会了我的意思。我想问的是如果我自己写程序如何做到不管你所说的那个语言编码如何设置,我的程序中都可以正常显示我输入的文字,就像msn做到的那样,我使用英文系统,内码设定为日文(就是您说的unicode编码设定那里我的设定为日文),使用msn的时候,无论使用中文还是日文或者在一段话中同时使用,都可以正常显示,不会有问题。To  believefym(暮色,miss,迷失,miss) 应该不是图像化处理的,因为我们还可以把对应文字复制粘贴,而且你查看msn的履历文件对应的xml的话,可以看到存储在里面的文字。
      

  6.   

    就跟IE一样你用它也可以看日本的网站啊,只要编码对了就好了可以选择啊
    输入的时候转换为utf-8,输出的时候一律用utf-8
      

  7.   

    对阿,我说的没错阿!!!!因为MSN包括windows本身就是属于那种“Unicode対応で済プログラム” 而QQ属于“Unicode対応でないプログラム”啊!
      

  8.   

    To shine333(enihs):那自己做的程序里面怎么才能做到 “Unicode対応で済プログラム”呢?
      

  9.   

    你是什么程序呢 win32/.net/java?
      

  10.   

    应该是msn的文本支持unicode就是常说的utf-8编码。
    中国中国
    中國中國
    这就是db中保存的2种字体的编码。显示出来就是简体/繁体了。
    其它语言道理一样。
      

  11.   

    回复人: shine333(enihs) ( ) 信誉:115  2005-11-21 15:48:00  得分: 0  
     
     
       你是什么程序呢 win32/.net/java?
      
     
    ---------------------------嗯,以任意一个为例好了。就win32,java吧
      

  12.   

    在J言JJava内部从一开始就使用Unicode(当然jdk1.0还是有点问题的),一般都不会乱码如果是硬编码,且你的.java文件里面有其它国家的语言(相对于当前操作系统),则可以指定.java文件的编码格式,这步工作最好在IDE里面设置。如果使用多国语言,一般采用资源文件(.properties)。以文本文件的形式来看,资源文件里面只能有ascii-7码,也就是<128的字符,其余字符用
    \uXXXX的16进制Unicode编码来保存。比如“項目”就对应“\u5d01\u681a”这部分工作,你可以利用jdk\bin\native2ascii.exe当然,现在也有使用xml作资源的,由于xml是自描述的,在第一行<?xml version="1.0" encoding="UTF-8" ?>里面就已经指定了自己这个文件的保存方式,所以程序无需考虑。