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

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

Jun 13, 2016 pm 12:00 PM
head php ti utf-8 1つ 文字化け 戻る 存在する よくある問題 コーディング 変化 質問 ページ

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 を使用してエンコードされます
すべてのデータがインポートされますローカルエンコードを使用すると、繁体字中国語地域のユーザーに文字化けが発生するため、エンコード変換
は推奨されません。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles