我比较字符串并且必须替换JS中的变音符号,但似乎JS不能识别字符串中的变音符号。文本来自数据库,在浏览器中,变音符号显示正常。替换JS中的变音符号
function replaceUmlauts(string)
{
value = string.toLowerCase();
value = value.replace(/ä/g, 'ae');
value = value.replace(/ö/g, 'oe');
value = value.replace(/ü/g, 'ue');
return value;
}
随着搜索模式我想:
- “A”, “O”, “U”
- /A /,/ O /,/ U/
- “
ä
” “ö
”,“ü
”(以及彻底的绝望;-))
可以肯定,它不是与替换功能的问题我试过的indexOf:
console.log(value.indexOf('ä'));
,但所有模式的输出是:-1
所以我想这是某种带有编码的问题,但正如我在页面上说,变音不只是看起来不错。
任何想法?这看起来很简单...
编辑: 即使我找到我的答案,问题并没有真正解决“在根”(编码)。 这是我的网页编码:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
数据库有:utf8_general_ci
似乎完全好了给我。
你在数据库中使用什么编码你在你的网页中使用什么编码? – Marc 2012-07-25 15:10:02
什么是字符串?记录它。您的方法可行,但正如您从indexOf中看到的那样,您的字符串不包含“ä”。 – Bergi 2012-07-25 15:11:12
'“bäg”.replace(/ä/ g,“ae”); // ==>“baeg”',所以有些东西很可能与你的编码不符 – 2012-07-25 15:14:02