免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: yangspring
打印 上一主题 下一主题

中文乱码程序讨论! (大家快来顶呀!) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-05-27 10:56 |只看该作者

中文乱码程序讨论! (大家快来顶呀!)

如果是PCOM话,在PC机器仿真界面上按Ctrl + F1看到'oe','of'.

论坛徽章:
0
12 [报告]
发表于 2004-05-27 23:15 |只看该作者

中文乱码程序讨论! (大家快来顶呀!)

1。XOF 和 XOE 都是1个字节长的字符型变量。BITOF和BITON是设置指定变量的指定位的二进制存储值为0或1。

BITOF'0123'    XOF     1                  
BITON'4567'    XOF        
XOF长度为1个字节,共8位(1byte=8bit)。这两句把变量XOF的前4位
置为'0000',后4位置为'1111',用二进制表示就是'00001111',用十六进制表示就是'0F',注意是 数字零 不是 字母O。

BITOF'01237   XOE     1                    
BITON'456'     XOE      
参考上面的解释。

2。
                                                      
C       ZOE       IFGT ZOF                          
C         30        SUB  INT1    JJ                  
C          JJ        DIV  2          JJ         
C                     MVR           JJ         
C          JJ        IFEQ 0                     
C                     MOVE XOFF      FIELD        
C                     ELSE                        
C                     MOVE XOF        FIELD        
C                     ENDIF                     
C                     ENDIF                     


400里面,对中文字符的解释是以 X'0E'开头,X'0F'结尾的,如果这两个标志不配对,就会出现乱码。ZOE大于ZOF,表示 X'0E' 的数量 大于 X'0F' 的数量,这样字符串FIELD就会乱码。这段程序的意思是想把少了的 X'0F' 补上,从而防止种文字符串的乱码。

INT1是检查到的 X'0E' 的位置的下一位,被字符串的总长度30减去以后,得到的 JJ 就是X'0E'之后还有多少个字符。

后面的两句是看 剩下的字符数量 是奇数还是偶数,如果得到的余数 JJ 等于0,就表示是偶数,如果不是0,表示是奇数。

因为一个汉字是占用2个字节的,如果剩下的字符数量是奇数,表示2位2位存储汉字以后,到第30位将只剩下1个字节,这时候这个字节应该是汉字的结束符 X'0F'了。如果剩下的字符数量是偶数,表示2位2位存储汉字的话,到第29位就应该写汉字的结束符了。这里它是用的 XOFF 来给最后两位赋值的,因为前面的程序已经给 XOFF 赋值了。

3。这个程序好像只能解决简单的问题。如果只有X'0F',或者标识符的排列顺序是X'0E'.....X'0E'......X'0F',或者X'0F'......X'0E'...的话,还是解决不了问题。

论坛徽章:
0
13 [报告]
发表于 2004-05-28 09:44 |只看该作者

中文乱码程序讨论! (大家快来顶呀!)

谢谢大家!
    真是众人拾柴火焰高!
    我所提供的那段代码,已经被aeiou解释的很清楚了。
正如aeiou在第三点所说,它只能解决一些简单的中文问题。不知道大伙
还有其它什么好的办法和代码?平时遇到中文乱码是如何处理?请不吝共享。
    我们在ChinaUnix.net这样对于一个专题,深入的讨论,互相交流,
相信大家都会有所收获的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP