尝试在运行时编辑字符串

时间:2016-04-04 15:15:55

标签: javascript string unicode formatting

我正在开发一个提供输出字符串的嵌入式系统。其中一些字符串带有自定义符号。我想要做的是读取它们并将它们解码为类似外观的Unicode字符。我遇到的问题是,虽然我可以检查我在Chrome的Inspect工具(更具体地说,网络标签)中收到的消息,但字符串会被编辑为65533个字符(替换字符)。

我尝试使用的代码是:

  textLines[3] = textLines[3].replace ("\xCD", "\x25a0");

“检查”选项卡中的字母显示为Í(U + 00CD),但在网页中显示为替换字符。我已经尝试将脚本的编码设置为UTF-16,但它不起作用。我使用的字体是Lucida Console,它应具有此字符。

我能做些什么来检测“真实”值并在运行时更改它?

编辑: 没有真正的编码。该字符直接从LCD屏幕读取。我得到的价值是205.这就是问题。

我尝试解码的格式是UTF-16。

2 个答案:

答案 0 :(得分:0)

你必须知道两件事

  • 有关编码的信息:您要翻译的符号是什么,以字节为单位的编码形式是什么?
  • 解码信息:什么是网页解码格式? (通常是UTF-8)你想在页面上显示的符号是什么?网页解码格式的字节编码形式是什么?

假设我有符号“é”(U + 00E9),我将其转换为“£”(U + 00A3)。 假设源信息以ISO-8859-1(扩展ASCII)编码,因此“é”为233(或“\ xE9”)。 假设我想在解码为utf-8的网页中将该符号显示为“£”,因此“£”是两个字节194(或“\ xC2”)和162(或“\ xA3”)。

现在我要做的就是找到233的所有实例,然后将其替换为194和162。

答案 1 :(得分:-1)

由于我正在处理的嵌入式系统具有非标准字符,我所做的是在将输出发送到浏览器之前手动进行编码。符号将更改为正确的Unicode值,然后在Javascript脚本中替换(使用replace())。它有点笨拙,但确实有效。