ページに「'」の代わりに「’」が表示される 質問する

ページに「'」の代わりに「’」が表示される 質問する

’の代わりに私のページに表示されます'

タグと 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 フォームから送信された値が正しくエンコード/デコードされていないことが挙げられます。


この問題について詳しく知るには、次のリンクを参照してください。

おすすめ記事