’
の代わりに私のページに表示されます'
。
タグと HTTP ヘッダーの両方に次のようにContent-Type
設定しました。UTF-8
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
さらに、ブラウザは次のように設定されていますUnicode (UTF-8)
:
それで、問題は何でしょうか、そしてどうすれば解決できるのでしょうか?
ベストアンサー1
だから問題は何ですか、
それは’
(RIGHT SINGLE QUOTATION MARK
- U+2019)文字は次のようにデコードされますCP-1252の代わりにUTF-8チェックするとFileFormat.Info のこの文字のエンコーディング テーブル0xE2
の場合、この文字は UTF-8 で、バイト0x80
、で構成されていることがわかります0x99
。
そして、Wikipedia の CP-1252 コード ページ レイアウトE2
すると、16 進バイト、80
および99
が個々の文字â
、€
およびを表していることがわかります™
。
どうすれば修正できますか?
文字の読み取り、書き込み、保存、表示には、CP-1252 ではなく UTF-8 を使用します。
<head>
タグと HTTP ヘッダーの両方で Content-Type を UTF-8 に設定しています。<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
これは、文字を解釈して表示するためにどのエンコーディングを使用するかをクライアントに指示するだけです。これは、文字の読み取り、書き込み、保存、表示に使用するエンコーディングをプログラムに指示するものではありません。正確な答えは、サーバー側のプラットフォーム/データベース/使用するプログラミング言語によって異なります。HTTPレスポンスヘッダーに設定されたものは、HTMLメタタグよりも優先されることに注意してください。HTMLメタタグは、のみページがfile://
Web から URL 経由で開かれるのではなく、ローカル ディスク ファイル システムから URL 経由で開かれる場合に使用されますhttp(s)://
。
さらに、ブラウザは次のように設定されています
Unicode (UTF-8)
:
これはクライアントに文字を解釈して表示するためにどのエンコーディングを使用するかを強制するだけです。しかし、実際の問題は、すでに’
文字 の代わりに、正確な文字 (UTF-8 でエンコード) をクライアントに送信します’
。クライアントは基本的に’
UTF-8 エンコードを使用して正しく表示します。クライアントが誤って ISO-8859-1 を使用して表示するように指示された場合、ââ¬â¢
代わりに が表示される可能性があります。
私はデータベースで ASP.NET 2.0 を使用しています。
おそらく、これが問題の原因です。独立したデータベース ツールを使用して、データがどのようになっているかを確認する必要があります。
文字が正しく入力されている場合は’
、プログラムからデータベースに正しく接続していない可能性があります。基本的には、UTF-8 を使用するようにデータベース コネクタを再設定する必要があります。その方法は、使用しているデータベースによって異なります。
または、データベースにすでに が含まれている場合は’
、データベースが壊れています。おそらく、テーブルが を使用するように構成されていません。UTF-8
代わりに、構成に応じて異なるデータベースのデフォルトのエンコーディングが使用されます。これが問題である場合、通常はテーブルを変更して UTF-8 を使用するだけで十分です。データベースがこれをサポートしていない場合は、テーブルを再作成する必要があります。テーブルを作成するときに、テーブルのエンコーディングを設定することをお勧めします。
おそらくSQL Serverを使用していると思いますが、ここにMySQLのコードがあります(この記事):
CREATE DATABASE db_name CHARACTER SET utf8;
CREATE TABLE tbl_name (...) CHARACTER SET utf8;
ただし、テーブルがすでに UTF-8 である場合は、一歩後退する必要があります。誰がまたは何そこにデータを置いてください。それは問題がどこにあるのか。一例としては、HTML フォームから送信された値が正しくエンコード/デコードされていないことが挙げられます。
この問題について詳しく知るには、次のリンクを参照してください。
- すべてのソフトウェア開発者が Unicode と文字セットについて絶対に知っておく必要がある最低限の知識 (言い訳はなし!)、我らがジョエルより。
- Unicode - 文字を正しく取得するにはどうすればいいですか?より簡潔で実用的な情報を提供し、Java 環境を対象としたソリューションを提供します。
- PHP サイトを UTF8 で設定する方法PHP 環境を対象としています。