JavaScript/HTML/Unicode重音符号:á;!=á;
我想检查用户提交的字符串是否与我的答案键中的字符串相同。有时,这些词带有西班牙口音(如萨巴多语),这使得情况总是错误的 我有Firebug日志JavaScript/HTML/Unicode重音符号:á;!=á;,javascript,html,unicode,Javascript,Html,Unicode,我想检查用户提交的字符串是否与我的答案键中的字符串相同。有时,这些词带有西班牙口音(如萨巴多语),这使得情况总是错误的 我有Firebug日志$('#answer').val(),它显示为sábado。(如果有必要,á来自插入值的按钮á;),而从应答键记录应答则显示sá;bado(我是如何在实际答案键中编写的) 我试着用一个普通的替换应答键中的á,但仍然不起作用,结果是出现了一个Unicode菱形问号。当我这样做并替换让用户提交的按钮的值时,条件工作正常,但是
$('#answer').val()
,它显示为sábado
。(如果有必要,á
来自插入值的按钮á;
),而从应答键记录应答则显示sá;bado
(我是如何在实际答案键中编写的)
我试着用一个普通的替换应答键中的á
,但仍然不起作用,结果是出现了一个Unicode菱形问号。当我这样做并替换让用户提交的按钮的值时,条件工作正常,但是按钮、用户字符串和答案字符串都有奇怪的Unicode菱形问号
我也尝试过使用á
在这两个地方都有,这与使用á;没有什么不同代码>。我的HTML和Javascript都在使用charset=“utf-8”
如何解决此问题?问题在于您没有在两个字符串(输入的答案和键)中使用真正的UTF-8字符。您不应该提供“插入值的按钮”--Re:“如果这很重要”,它会提供
应通过键盘输入系统添加字符。并且您的比较字符串也应该仅为utf-8字符。它不应该是字符实体。如果您一直使用UTF-8,那么除了编码语法(即
,
,&;
和-在属性内-“
)之外,不需要HTML实体
对于其他任何事情,使用正确的字符,您的问题应该会消失——直到您遇到unicode规范化问题,即'a\u0301'
和'\u00E1'
之间的差异。您能在jsfiddle.net中给出一些示例吗?因此,在一个案例中,您似乎正在将sá;bado
与sábado,这当然是false
。在另一种情况下,您正在比较s�bado
到sábado
,这也是false
。似乎是一个简单的编码问题…?这是什么。每个字符串的长度属性返回?如何。charAt(1)
?@Gabe:.用户值的长度是6,.应答键值的长度是13..用户值的charAt(1)是b,.charAt(1)答案的关键值是&。我怀疑您在JS中使用的是HTML实体,可能代码中有类似answer=“sá;bado“
而不是answer=“s\xE1bado”
。谢谢……考虑到“按按钮添加”对我的程序非常重要,有没有办法使用JavaScript将字符实体转换为UTF-8?我的谷歌技能让我失望。