2012-04-27 15 views
1

データベースからいくつかのデータが返されますが、これは通常はwordからコピー&ペーストされたさまざまな方法で入力します。文字エンコーディングはローカルでは動作しません

最後の文字を手動でHtmlEncodeしようとするのではなく、ページ上のcontent-typeを使用して別の文字セットを読み込むという明るい考えがありました。現在、私はデフォルトのコンテンツタイプを上書きするために何もしていません。私がローカルで走った場合、コンテンツタイプはutf-8として表示され、「外国人」の文字が表示されました。アップロードされると、content-typeがISO-8859-1として戻ってきて、「外国人」の文字が2つの品種の疑問符(...)として表示されていました。

返された文字セットをResponse.Charset = "utf-8";で上書きし、応答ヘッダーにutf-8が正しく表示されていても、正しい文字の代わりに疑問符が表示されます。下の画像を参照してください:

ローカルページを

Local page, all characters appearing correctly

ローカルページのヘッダー

Local page header

外部ページ

(疑問符の2種類に気づきます)

External page, notice two types of error question marks

外部ページヘッダー

External page header

私はhttp://htmlpurifier.org/docs/enduser-utf8.htmlを追ってきましたが、離れてUTF-8を必要とするから、私は、任意の解決策を見つけることができませんでした。

+2

ページにmeta content-type要素はありますか? – Oded

+0

うん、同じutf-8になるように設定してください。 – Chris

+0

ブラウザはコードページをどのように表示しますか? – Oded

答えて

0

解決済み。まだ完全にすべてがどのように働いているのかは分かりませんが、私がしたことを説明します。

コンテンツタイプがUTF-8であると言うヘッダーがありましたが、これで問題は解決しませんでした。 Odedが暗示しているように、私はIIS> .Netグローバリゼーションで、ISO-8859-1に設定された2つの設定(要求と応答)を発見しました。

これらをUTF-8に変更すると、このトリックが解決されました。

ヘッダーが同じであるように見える理由については、わかりません。誰かが何が起こっているのかを説明できれば、それは素晴らしいものになるでしょう。

関連する問題