JavaScript/HTML/Unicode重音符号:á;!=á;

JavaScript/HTML/Unicode重音符号:á;!=á;,javascript,html,unicode,Javascript,Html,Unicode,我想检查用户提交的字符串是否与我的答案键中的字符串相同。有时,这些词带有西班牙口音(如萨巴多语),这使得情况总是错误的 我有Firebug日志$('#answer').val(),它显示为sábado。(如果有必要,á来自插入值的按钮á;),而从应答键记录应答则显示sá;bado(我是如何在实际答案键中编写的) 我试着用一个普通的替换应答键中的á,但仍然不起作用,结果是出现了一个Unicode菱形问号。当我这样做并替换让用户提交的按钮的值时,条件工作正常,但是

我想检查用户提交的字符串是否与我的答案键中的字符串相同。有时,这些词带有西班牙口音(如萨巴多语),这使得情况总是错误的

我有Firebug日志
$('#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?我的谷歌技能让我失望。