文字列を比較しているので、JSのウムラウトを置き換える必要がありますが、JSは文字列のウムラウトを認識していないようです。テキストはデータベースからのものであり、ブラウザではumlautsは正常に表示されます。
function replaceUmlauts(string)
{
value = string.toLowerCase();
value = value.replace(/ä/g, 'ae');
value = value.replace(/ö/g, 'oe');
value = value.replace(/ü/g, 'ue');
return value;
}
私が試した検索パターンとして:
- 「ä」、「ö」、「ü」
- /ä/、/ö/、/ü/
- "
ä
"、 "ö
"、 "ü
"(まあ完全な絶望;-))
確かに、私がindexOfを試したreplace関数では問題ではないことを確認してください。
console.log(value.indexOf('ä'));
ただし、すべてのパターンの出力は次のとおりです。-1
ですから、エンコーディングに何らかの問題があると思いますが、ページで述べたように、umlautsは問題なく見えます。
何か案は?これはとても簡単なようです...
編集:私の答えを見つけたとしても、問題は「ルートで」(エンコーディング)実際には解決されませんでした。これは私のページのエンコーディングです:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
データベースには次のものがあります:utf8_general_ci
私には完全に大丈夫のようです。