keil c51 v9.50a 0xfd液晶字符修正???????????
请问大侠们的keil c51 v9.50a 0xfd修正这个是怎么弄好的色????????使用以前的修正0xfd的工具没有效果了。 v905之前的0xfd漏洞修正方法: 用HEXEdit修改c51.exe、a51.exe查找 80fbfd56
替换为 80fbff56
v905的0xfd漏洞修正方法
查找 80fbfd0f
替换为 80fbff0f chenfzg 发表于 2012-6-22 22:25 static/image/common/back.gif
v905之前的0xfd漏洞修正方法: 用HEXEdit修改c51.exe、a51.exe
查找 80fbfd56
替换为 80fbff56
你好,9.50的查找那个数据提示没有找到!!! 查找 80fbfd0f
替换为 80fbff0f
这个数据查找,记得去掉勾选的FIND TEXT 学习了,升级时备用! chenfzg 发表于 2012-6-23 16:35 static/image/common/back.gif
查找 80fbfd0f
替换为 80fbff0f
这个数据查找,记得去掉勾选的FIND TEXT
多谢你的 指点,已经修正成功了,非常的感谢!!!!!! 我的得把C51.exe CX51.exe A51.exe AX51.exe 都改了才成 下面的是来自Keil官方的解决方法
http://www.keil.com/support/docs/2618.htm
GENERAL: COMPILER IGNORES 0XFD, 0XFE, 0XFF VALUES IN STRINGS
Information in this article applies to:
* C166 Compiler All Versions
* Cx51 Compiler All Versions
* C251 Compiler All Versions
QUESTION
I have a problem with the interpretation of Russian strings in the Keil C51 compiler. Some Russian characters are using the encoding 0xFD. It looks like this encoding is ignored by the compiler and is not included in the program code.
Example:
code char RussianString[] = "??? ????";
Why does this problem exist and how can I avoid this behavior?
ANSWER
The character encodings 0xFD, 0xFE, and 0xFF are used internally by the C compiler. The ANSI standard only requires support for ASCII characters in the range 0x00 - 0x7F.
You may insert these characters by using HEX encodings in the string as follows:
code char RussianString[] = "My Text" "\xFD";
A simple text replacement which replaces all 0xFD characters with the string '" "\xFD' should do the job.
对于这个BUG建议还是不要修改软件,因为不确定在某些特定条件下是否会引起莫名奇妙的其他问题,而且涉及到这个BUG的汉字不多,下面是从GB2312中抽了出来:
褒 饼 昌 除 待 谍 洱 俘 庚 过
糊 积 箭 烬 君 魁 例 笼 慢 谬
凝 琵 讫 驱 三 升 数 她 听 妄
锡 淆 旋 妖 引 育 札 正 铸
佚 冽 邶 埤 荦 蔟 摭 啐 帻 猃
恺 泯 潺 妪 纨 琮 椠 辇 挲 臊
忑 睚 铨 稞 瘕 颀 螨 簖 酏 觚
鳊 鼾
碰到这些字,建议手动处理一下就好了!
谢谢分享 mark 今天遇到这个问题折腾了一天,原来这里就有 还是不太明白什么意思,哪位大大能否解释直白一些,谢谢。
code char RussianString[] = "My Text" "\xFD";
A simple text replacement which replaces all 0xFD characters with the string '" "\xFD' should do the job.
qinchl 发表于 2013-3-15 14:34 static/image/common/back.gif
还是不太明白什么意思,哪位大大能否解释直白一些,谢谢。
code char RussianString[] = "My Text" "\xFD"; ...
意思就是说,如果你的字符中包含了0xFD,那么就会被忽略。但如果用\x转义符写的却不会,例如可以在字符串中写"\xFD",最后的数据中会保留这个字符。
所以对于受到影响的汉字,你可以直接用两个\x转义符把编码直接写上。或者额外写一个\xFD补上被滤掉的。
例如,“数字电路”这个字符串,直接写的话,“数”会出问题。那么你可以写:(“数”的编码是0xCA 0xFD)
"\xCA\xFD字电路"
或者写:
"数\xFD字电路" mark 学习了 学习了,谢谢解释!
好东西,学习了 承浩2012 发表于 2013-6-9 14:49 static/image/common/back.gif
好东西,学习了
{:smile:} 好东西,学习了 aeris 发表于 2013-3-17 04:41
意思就是说,如果你的字符中包含了0xFD,那么就会被忽略。但如果用\x转义符写的却不会,例如可以在字符串 ...
特别好···{:3_59:} 了解了解 好帖,终于解决啦 Mark一下,留着备用! 谢谢分享
页:
[1]