我正在开发一个提供输出字符串的嵌入式系统。其中一些字符串带有自定义符号。我想要做的是读取它们并将它们解码为类似外观的Unicode字符。我遇到的问题是,虽然我可以检查我在Chrome的Inspect工具(更具体地说,网络标签)中收到的消息,但字符串会被编辑为65533个字符(替换字符)。
我尝试使用的代码是:
textLines[3] = textLines[3].replace ("\xCD", "\x25a0");
“检查”选项卡中的字母显示为Í(U + 00CD),但在网页中显示为替换字符。我已经尝试将脚本的编码设置为UTF-16,但它不起作用。我使用的字体是Lucida Console,它应具有此字符。
我能做些什么来检测“真实”值并在运行时更改它?
编辑: 没有真正的编码。该字符直接从LCD屏幕读取。我得到的价值是205.这就是问题。
我尝试解码的格式是UTF-16。
答案 0 :(得分:0)
你必须知道两件事
假设我有符号“é”(U + 00E9),我将其转换为“£”(U + 00A3)。 假设源信息以ISO-8859-1(扩展ASCII)编码,因此“é”为233(或“\ xE9”)。 假设我想在解码为utf-8的网页中将该符号显示为“£”,因此“£”是两个字节194(或“\ xC2”)和162(或“\ xA3”)。
现在我要做的就是找到233的所有实例,然后将其替换为194和162。
答案 1 :(得分:-1)
由于我正在处理的嵌入式系统具有非标准字符,我所做的是在将输出发送到浏览器之前手动进行编码。符号将更改为正确的Unicode值,然后在Javascript脚本中替换(使用replace()
)。它有点笨拙,但确实有效。