多言語をサポートする codeigniter を使用してサイトを開発しています。ユーザーが母国語で検索すると、結果をページ分割すると最初の結果が得られ、文字がデコードされません。
これは、ページネーションに使用される URL です。
uri セグメントを印刷すると、 %E0%B4%AE が得られました
url エンコードと url デコードを試したところ、à´® のような別の文字が表示されました。
このタイプの文字セットをデコードする方法を教えてもらえますか?
多言語をサポートする codeigniter を使用してサイトを開発しています。ユーザーが母国語で検索すると、結果をページ分割すると最初の結果が得られ、文字がデコードされません。
これは、ページネーションに使用される URL です。
uri セグメントを印刷すると、 %E0%B4%AE が得られました
url エンコードと url デコードを試したところ、à´® のような別の文字が表示されました。
このタイプの文字セットをデコードする方法を教えてもらえますか?
使用するurldecode
必要があるのはですが、間違った出力が出力される理由は、出力ページのエンコーディングがUTF-8に設定されていないため、デフォルトでISO-8859-1になっている可能性があります。したがって、文字はPHPによって正しくデコードされていますが、ブラウザは文字を間違ったエンコーディングで解釈し、誤った表示になります。
この問題を修正するには、次のような出力の前charset
にヘッダーでを送信します。Content-type
header('Content-type: <type>; charset=utf-8');
出力ページがHTMLの場合は、代わりにこのタグをhead
:で使用できます。
<meta charset="utf-8">
head
2番目のオプションを選択する場合は、ブラウザがこの宣言のページの最初の1024バイトを超えてスキャンしないため、タグをできるだけ早くに配置するようにしてください。