質問する
5126 次
2 に答える
3
すでに持っているデータは、おそらく通過する必要がありますutf8_decode()
(ではありませんutf8_encode()
)。
将来的にスムーズな航海を確保するには、パイプ全体がUTF-8であることを確認する必要があります。悲しいことに、これは自明ではありません。私の頭のてっぺんから、チェックする必要がある場所:
- HTTPデーモンのデフォルトのエンコーディング
- Apacheの場合は、.htaccessまたはhttpd.confに追加します。
AddDefaultCharset UTF-8
- Apacheの場合は、.htaccessまたはhttpd.confに追加します。
- PHPのdefault_encoding
- .htaccessまたはサーバー構成を追加します。
php_value default_charset "UTF-8"
- .htaccessまたはサーバー構成を追加します。
- HTTPのヘッダーコンテンツタイプ文字セット
header('Content-Type: text/html; charset=UTF-8');
- HTMLのメタコンテンツタイプの文字セット
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- PHPのMySQL接続文字セット
mysql_set_charset('utf8');
- MySQLのデータベースのデフォルトの文字セットと照合
- 文字セット
utf8
と照合を使用するutf8_general_ci
- 文字セット
- MySQLのテーブルと列の文字セット
- 文字セット
utf8
と照合を使用するutf8_general_ci
- 文字セット
また、不要なHTMLまたはXMLを含む可能性のある値を出力する必要がある場合はhtmlentities($var, ENT_COMPAT, 'UTF-8');
、単にではなくを使用してください。htmlentities($var);
また、可能な場合は、やなどの関数を使用してmb_*
ください。mb_strlen()
mb_substr()
于 2013-01-25T19:58:03.000 に答える
-1
テーブルの照合を次のように変更しますlatin1_swedish_ci
special char を使用すると、次のようなこともできます
mysql からのデータを表示するため
$str=html_entity_decode(stripslashes($rows[4]));
特殊文字を含むデータをmysqlに挿入するため
$var_name=htmlentities(mysql_real_escape_string($detail));
于 2013-01-23T06:05:02.953 に答える