51Testing软件测试论坛

标题: 请教什么叫Problem chars [打印本页]

作者: wine_test    时间: 2008-3-25 10:28
标题: 请教什么叫Problem chars
什么5c              7c都是什么意思??
作者: lj1981727    时间: 2008-4-16 23:02
我听说过这个,今天也在网上看了一些相关的资料,5c实际上是针对十六进制的0x5c来说的,7c也是针对十六进制里面的0x7c来说的。
你可以先在网上看看字符编码相关的知识。十六进制0x5c对应的字符是\,0x7c对应的字符是|。你可以在网上找个转换器转换一下就知道了。
因为对于中文和日文等一些东亚文字一个字符对应的是两个16进制数,如果一个汉字或者日文的编码中包含5C或7C,还有一些其他的特殊字符5E(^),7B({)等,如果程序处理的不好,在程序中如果用到这些文字程序很容易出问题。所以在测试国际化软件时,测试数据比如路径,文件名等最好选择这种包含5c,7c等特殊字符编码的文字。简体中文最好包含这个字 '奬',编码为0x8a5c.日文里面测试时最好用 表  (0x955c)等字符来作为测试输入。
其实测试过程中比较简单,只要知道这些包含5c或7c的文字怎么输入就可以了,测试时就用这些做为测试数据,不过你还是多看看字符集,编码,codepage等相关的东西,这个对全面理解国际化测试比较有好处,具体的我现在也不是特别清楚,目前还在学习中,
作者: kyo1891362    时间: 2008-4-22 18:36
楼上说的很对. 你可以在WINDOWS下的程序->附件->系统工具->字符映射表中看见
0x5c  0x7c对应的字符,当然他们是UNICODE格式的. 这两个作为特殊字符.
在一些嵌入式系统中,是很容易出错的.甚至导致系统崩溃.
给个以前看的很简单的例子给你参考下
Many of the Asian code pages have multi-byte characters that have the second byte in the
ASCII range. These characters are known to break the products.
Here if one senario...

char *str = "ABCD表EF\XYZ" ;
Byte values...
A          B      C     D               表      E    F         \        X       Y        Z
0x41 0x42 0x43 0x44 0x95,0x5C 0x45 0x46 0x5C 0x58 0x59 0x5A

Notice the two bytes with values 0x5C. One is the second byte of the Japanese character and the other is the codepoint of backslash.
Say you want to separate this string at backslash. A non i18n compatible code like below...


char *ptr = src ;
while(*ptr++ == '\') { ...

will stop at the second byte of the Japanese character and any string truncation after that would corrupt your string. So if you use any of the troublesome character (Use link below) you have more chances of breaking the system.
作者: 轻扬婉儿    时间: 2008-5-29 16:29
例:
char overlaps with "@" (0x40)
如、鼻、法、論、蓮、院

Character        Code        Character        Code
如 (jyo)        9440        論 (ronn)        9740
鼻 (hana)        9540        蓮 (renn)        9840
法 (hou)        9640        院 (inn)        8940
这是一些日文,我们可以注意上面的 "@" (0x40)
那到下面那些日语字符在处理上必须要注意,否则会出现问题
那么这些字符就叫问题字符。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2