Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 Unicode:相同的字母但不同的Unicode_Javascript_Unicode_Keyboard Layout - Fatal编程技术网

Javascript Unicode:相同的字母但不同的Unicode

Javascript Unicode:相同的字母但不同的Unicode,javascript,unicode,keyboard-layout,Javascript,Unicode,Keyboard Layout,我必须将文本发送到printservice,它只接受特定类型的特殊字符,例如,I。我的客户机以某种方式输入文本,使字母看起来相同,但具有不同的基础unicode符号,因此无法由printservice正确处理。例如: Mine: ï (unicode \u00EF) Theirs: ï (unicode \u0069\u0308), copy pasting the 2 symbols in chrome bar for example, will show that it actually

我必须将文本发送到printservice,它只接受特定类型的特殊字符,例如,I。我的客户机以某种方式输入文本,使字母看起来相同,但具有不同的基础unicode符号,因此无法由printservice正确处理。例如:

Mine: ï (unicode \u00EF)
Theirs: ï (unicode \u0069\u0308), copy pasting the 2 symbols in chrome bar for example, will show that it actually looks the same in textarea's)

如何将所有特殊字符从“他们的样式”转换为“我的样式”(Windows上的荷兰键盘布局)?我想这与操作系统或键盘布局有关,但我找不到一个列表来说明差异,或与此问题相关的任何内容。是否有人建议如何继续?

正如评论中正确指出的那样,有两种方法(或“规范化形式”)以unicode表示重音字符:

  • 带有专用符号(
    \u00EF==ï
  • 由基本字母+重音组成(即
    i+==i+\u0308==i
ES6添加了一个专用函数,用于在规范化表单之间转换字符串:

如果您的系统还不支持
标准化
,请四处寻找垫片。

是I或带分音符的拉丁文小写字母I(并且\u0020是空格字符)

拉丁文小写字母I后跟组合分隔符

需要将第二个两字符序列转换为第一个。在发送到打印服务之前,您需要找到一些实用程序来执行此规范化


有关一些选项,请参阅。

它们都有效。重音字符可以通过合成两个字符来完成,许多字符还具有专用字符。听起来像是printservice无法处理某些类型的有效Unicode的错误。谢谢您的评论。这确实是printservice中的一个bug,但是更改代码超出了我的范围。有没有一种(简单的)方法可以将所有的作文转换成一个单独的专用字符?正如当前的答案所强调的,我认为你在撰写问题时输入了错误的样本数据。这只是一个分隔符(当然,也是很好的空白)。@lvaroG.Vicario我更正了Kevin Hakanson回答的每个问题的Unicode码点数。“所有的组成都是一个专用字符”-这个概念只适用于Unicode有专用字符的情况。组合字符可以应用到的基本字符没有限制,组合字符的顺序也没有限制。为什么要投反对票?非常有用和正确的答案。
// convert one-char ("composed") to multiple-chars ("decomposed") form:
escape("\u00EF".normalize("NFD"))  
> "i%u0308"

// convert decomposed form to composed:
escape("i\u0308".normalize("NFC"))  
> "%EF"