【发布时间】:2016-07-22 12:56:41
【问题描述】:
我正在制作一个 c# 程序,它使用 ZXing 库生成一个 QRCode,供 Windows Mobile 手持设备读取(c# 但专有的条形码阅读器:摩托罗拉符号)
我使用winform文本框将标签内容设置为é(小写字母e)并将其读取到我的设备上,它显示为Ú(大写字母U)
当我使用 Android 条形码扫描仪读取标签时,它显示为 é...
[这里无法上传图片,我稍后会发布条形码]
我认为编码是这里的问题,所以我查看了发送的字节:233
在这个网站上:http://www.ascii-code.com/,它说é 是 233,这是预期的行为。但是在这个网站上:http://www.theasciicode.com.ar/ 说é 是 130,Ú 是 233! (顺便说一句,我正在输入 Alt+233 以在我的 Windows 计算机上显示 Ú)
编辑:显然第一个网站显示 ISO-8859-1 (windows-1252) 字符。但问题仍然存在:根据第二个网站,é 编码为 130 ?
编辑 2:我完全同意 UTF-8 可以轻松解决我的问题(适用于 android,但我不能告诉我的设备“嘿,这个条形码是 UTF-8 编码的!”所以它会向我显示原始信息,请参阅下面的答案。
- 发生了什么? (编辑:已回答,单符号编码不匹配)
- 一个字符有两个特定的 ASCII 值是否正常? (编辑:已回答,使用了两种编码)
- 收到 233 代码后,如何告诉手持设备转换此值?
提前谢谢你!
【问题讨论】:
-
ASCII 只有 7 位;没有 130 或 233 这样的 ASCII 码;根据定义:那不是 ASCII。那么你需要问:正在使用的代码页/编码是什么?我们不能告诉你。
-
同意更好的命名约定。那么我怎样才能调用那些大于 127 的值呢?第一个网站说它是 ISO-8859-1(我想是 Windows-1252)但是第二个网站呢?
-
好的。这些网站谈论“扩展 ascii”,但没有编码上下文完全没有意义,因此无法理解,因此这个 stackoverflow 问题
标签: c# ascii windows-ce zxing