Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图在运行时编辑字符串_Javascript_String_Unicode_Formatting - Fatal编程技术网

Javascript 试图在运行时编辑字符串

Javascript 试图在运行时编辑字符串,javascript,string,unicode,formatting,Javascript,String,Unicode,Formatting,我正在开发一个提供输出字符串的嵌入式系统。其中一些字符串带有自定义符号。我试图做的是读取它们并将它们解码为类似的Unicode字符。我的问题是,虽然我可以检查在Chrome的inspect工具(更具体地说,是网络选项卡)中收到的消息,但字符串被编辑为65533字符(替换字符) 我尝试使用的代码是: textLines[3] = textLines[3].replace ("\xCD", "\x25a0"); “检查”选项卡中的字母显示为Í(U+00CD),但在网页中显示为替换字符。我已经尝

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

我尝试使用的代码是:

  textLines[3] = textLines[3].replace ("\xCD", "\x25a0");
“检查”选项卡中的字母显示为Í(U+00CD),但在网页中显示为替换字符。我已经尝试将脚本的编码设置为UTF-16,但它不起作用。我使用的字体是Lucida Console,它应该有这个字符

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

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


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

您必须知道两件事

  • 编码信息:您要翻译的符号是什么,它的编码形式是什么(以字节为单位)
  • 解码信息:什么是网页解码格式?(通常是UTF-8)您希望在页面上显示的符号是什么,以及在网页解码格式中以字节为单位的编码形式是什么
假设我有一个符号“é”(U+00E9),我把它转换成了“英镑”(U+00A3)。 假设源信息是用ISO-8859-1(扩展ASCII)编码的,所以“é”是233(或“\xE9”)。 假设我想在解码为utf-8的网页中将该符号显示为“£”,因此“£”是两个字节194(或“\xC2”)和162(或“\xA3”)


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

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

该网页的解码是UTF-16。另一方面,符号的编码更为复杂。我直接从嵌入式系统获取值,它没有标准编码(是在LCD上绘制的值,而不是特定字符)。我从系统中得到的值是205。@MKII检查UTF-16。对于来自嵌入式系统的信息提交,您应该做对您有意义的事情。翻译计算是相同的原则。您应该将此作为注释添加,因为它不是问题的答案。它并不笨拙。网络更多地使用utf-8,但这是任意的。在您的设计中,您需要选择一种中间形式。因此,如果在嵌入式系统中,您有一个非标准字大小的位流(例如:有6位后跟3位字段),我会将其标准化为8位或16位。然后,为了显示,我将转换为适合信息显示的输出格式。您可以有多种类型的显示器。一个可能是utf-16网页。另一种可能是与控制器的RS-485连接。