ホームページ > php教程 > php手册 > PHPのコード化け問題、UTF-8のコード化けよくある問題のまとめ

PHPのコード化け問題、UTF-8のコード化けよくある問題のまとめ

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:00:56
オリジナル
1264 人が閲覧しました

1. HTML ページの UTF-8 エンコードへの変換の問題
1. ヘッダーの後とタイトルの前に行を追加します:

コードは次のとおりです:

function get_brief_str($str, $max_length)

{
echo strlen ($str) ."
";
if(strlen($str) > $max_length)
{
$check_num = 0; $i=0; i
{
if (ord($str[$i]) > 128)
$check_num ;

if($ check_num % 3 == 0)
$str = substr( $str, 0, $max_length)."...";
else if($check_num % 3 == 1)
$str = substr($str, 0, $max_length 2).".. .";
else if($check_num % 3 == 2)
$str = substr($str, 0, $max_length 1). "...";
}
return $ str;


3. MYSQL データベースの UTF-8 エンコーディングの使用に関する問題

1. phpmyadmin を使用してデータベースとデータ テーブルを作成します
データベースを作成するときは、「組織」を設定してください。 to : "utf8_general_ci"
または次のステートメントを実行します:

CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
データ テーブルを作成する場合: このフィールドに中国語を格納する場合は、次のようにする必要があります。 Organization" は、"utf8_general_ci"、

フィールドに英語または数字が格納されている場合は、デフォルトで問題ありません。

対応する SQL ステートメント (例:

コードをコピーします) コードは次のとおりです:


CREATE TABLE `test` (
`id` INT NOT NULL ,
`name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;


2. PHP を使用してデータベースの読み取りと書き込みを行います

データベースに接続した後:

[hide]$connection = mysql_connect($host_name, $) host_user, $host_pass);

2 行を追加します:

コードをコピーします コードは次のとおりです:


mysql_query("setcharacter set 'utf8'" );//ライブラリを読み取ります
mysql_query("set names 'utf8'");//ライブラリを書き込みます


と、読み取りと書き込みが可能です通常は MYSQL データベース。

4. JS に関連する UTF-8 エンコーディングの問題
1. JS が Cookie を読み取るときに中国語が文字化けする問題

PHP が Cookie を書き込むときは、中国語の文字が文字化けする必要があります。エンコードされたエスケープエンコーディング、
そうしないと、Cookie 内の JS によって読み取られる中国語の文字が文字化けします。
しかし、PHP 自体にはエスケープ関数がありません。新しいエスケープ関数を作成しましょう:

コードをコピーします コードは次のとおりです:


functionscape($str)
{
preg_match_all("/[x80-xff].|[x01-x7f] /",$str,$r); = $r[0];
foreach($ar as $k=>$v)
{
if(ord($v[0]) $ar[ $k] = rawurlencode($ v);
else
$ar[$k] = "%u".bin2hex(iconv("UTF-8","UCS-2",$v));
}
return join("",$ar)
}


JS が Cookie を読み取るときに、unescape を使用してデコードします。

これで、Cookie 内の中国語の文字化けの問題は解決されます。

2. 外部 JS ファイルの UTF-8 エンコードの問題

HTML ページまたは PHP ページに外部 JS ファイルが含まれている場合、

HTML ページまたは PHP ページ

外部 JS ファイルも UTF-8 ファイルに変換する必要があります。そうしないと、インクルードが存在しないように見えます。関数呼び出し時の応答。

エディターのメニューをクリックします:「ファイル」->「名前を付けて保存」、現在のファイルのエンコードが表示されます。ファイルのエンコードが UTF-8、

の場合ANSI です。エンコーディングを UTF-8 に変更する必要があります。


5. FLASH に関連する UTF-8 エンコーディングの問題

FLASH の内部のすべての文字列はデフォルトで UTF-8 で処理されます
1. (txt、html)
テキスト ファイルのエンコーディングを UTF-8 として保存するには
エディターのメニュー「ファイル」->「名前を付けて保存」をクリックすると、現在のファイルのエンコーディングが表示されます。ファイルのエンコードが UTF-8 であることを確認してください。
ANSI の場合は、エンコードを UTF-8 に変更する必要があります。
2. FLASH は XML ファイルを読み取ります
XML ファイルのエンコーディングを UTF-8 として保存するには
エディター メニューをクリックして、[ファイル] -> [名前を付けて保存] をクリックし、現在のファイルのエンコーディングを確認します。ファイルのエンコードが UTF-8 であることを確認してください。
ANSI の場合は、エンコードを UTF-8 に変更する必要があります。
XML の 1 行目に次のように記述します。

3. FLASH は PHP を読み取り、データを返します。
PHP エンコード自体が UTF-8 の場合は、直接エコーします。
PHP エンコード自体が UTF-8 の場合は、 GB2312 はい、PHP を UTF-8 エンコード形式のファイルに転送し、それを直接エコーするだけです。
PHP エンコード自体が GB2312 で、ファイルのエンコード形式の変更が許可されていない場合は、
文字列を変更するには次のステートメントを使用します。文字列を UTF-8 エンコード形式に変換します
$new_str = iconv("GB2312", "UTF-8", "$str");
もう一度エコーします
4. FLASH はデータベース (MYSQL) データを読み取ります。
FLASH は PHP を通じてデータベース内のデータを読み取る必要があります。
PHP 自体のエンコードは重要ではありません。データベースのエンコードが GB2312 の場合、
は必要です。次のステートメントを使用して文字列を UTF-8 エンコード形式に変換する必要があります
$new_str = iconv("GB2312", "UTF-8", "$str");

5。 PHP を介したデータ
一言で言えば、FLASH 渡される文字列は UTF-8 形式です。
操作 (ファイルの書き込み、データベースの書き込み、直接表示など) の前に、対応するエンコード形式に変換する必要があります。 🎜> または、iconv 関数を使用して変換します
6. FLASH はローカル エンコーディングを使用します (理論的には推奨されません)
FLASH で UTF-8 エンコーディングを使用せず、ローカル エンコーディングを使用したい場合
中国本土の場合、ローカルのエンコードは GB2312 または GBK
AS プログラムに次のコードを追加できます:
System.useCodepage = true
その後、FLASH 内のすべての文字が GB2312 を使用してエンコードされます
すべてのデータがインポートされますローカルエンコードを使用すると、繁体字中国語地域のユーザーに文字化けが発生するため、エンコード変換
は推奨されません。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート