我比較字符串並且必須替換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