我有一个程序是和其他两家单位的程序一起运行的,相互之间要传递数据。
O   -   O   -   O
我      A       B
A单位和我是一样的操作系统都是windows2003的没有问题然后B单位是unix数据传递到B后有些汉字和|在B单位就被合在一起变成乱码了。现在A单位又不愿意弄定长报文等(就是不愿意再改程序啦),我想问一下我这边怎么能解决这个问题呢?传递的数据 字段用 | 隔开的 ,有些字段的汉字和|一起乱码

解决方案 »

  1.   

    接口模式
    自己写个转换器传A的数据进来转换成B的编码格式再给B
      

  2.   

    那就是在传输数据的过程中编码不一致了!应该和B单位的unix系统有关吧。不知道他是什么版本的unix系统的汉化问题一直比较困难解决方法:应该尽量避免使用中文数据进行传递,仔细观察,中文的“|”与英文的"|"是不一样的,用英文的"|"应该可以的吧结果:||||||||  
      

  3.   

    就是用的英文的|,传递的数据必须有中文的,要求的那个字段是人的姓名,没办法啊,B单位只是我在系统分的,实际上B有三家单位每家的系统还都不一样,一个是linux,一个是unixhp的还有一个不太清楚。
      

  4.   

    提供一个思路,你知道java编码的国际化吧?把中文数据用JDK中的native2ascii命令转换成程序认识,但是你不认识的代码,类似于"/42ab2"这种格式的然后让程序在B客户端读取出来就自动转换成中文显示。java国际化中的资源文件就采取此种方法实现本地化的过程
      

  5.   

    这主要看Unix和windows里的程序是谁写的,谁写的谁责任,不是操作系统的责任。
    Unix默认字符集和windows默认字符集不同,所有关于字符的操作不能假设依靠默认的编码,而是在所有地方尽可能的避免使用操作系统默认值。
      

  6.   

    我只开发我的程序,A的程序,B的程序是其他的公司开发的,算起来合作的公司应该有5家了,数据是我传递给
    A之后,A再传递B
      

  7.   

    A端是一家公司,A将数据转给B(三家公司)
      

  8.   

    各家的编程语言都不一样的,我的是java,其他的vc的c的都有