ホームページ  >  記事  >  バックエンド開発  >  PHP および MySQL_PHP チュートリアルでの UFT-8 の文字化けした中国語エンコーディングに対するいくつかの解決策

PHP および MySQL_PHP チュートリアルでの UFT-8 の文字化けした中国語エンコーディングに対するいくつかの解決策

WBOY
WBOYオリジナル
2016-07-21 15:19:14970ブラウズ

PHP ページを UTF-8 エンコードに変換する際の問題
1. コードの先頭に行を追加します:

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

header("Content-Type: text/ html;charset=utf-8") ;

2.PHP ファイルのエンコードの問題
エディタのメニューをクリックして、「ファイル」->「名前を付けて保存」をクリックすると、現在のファイルのエンコードが表示されます。ファイルのエンコーディングは: UTF-8、
ANSI の場合は、エンコーディングを UTF-8 に変更する必要があります。
3. PHP ファイルヘッダーの BOM 問題:
PHP ファイルには BOM タグがあってはなりません
それ以外の場合、セッションは使用できなくなり、同様のプロンプトが表示されます:
警告: session_start() [function.session-start]: 送信できませんセッション キャッシュ リミッター - ヘッダーはすでに送信されています
これは、session_start() を実行するときにページ全体に出力を含めることができないためですが、前の PHP ページに BOM タグが存在するため、
PHP はこの BOM タグを出力と見なすため、エラーになります。
そのため、PHP ページは BOM タグを削除する必要があります
この BOM タグを削除する方法:
1. Dreamweaver でファイルを開いて再保存し、BOM タグを削除します。
2. EditPlus でファイルを開き、メニューの「環境設定」->「ファイル」->「UTF-8 ID」で「署名を常に削除」に設定し、
ファイルを保存します。 BOMタグも削除可能!
4. PHP がファイルを添付ファイルとして保存するときの UTF-8 エンコードの問題:
PHP がファイルを添付ファイルとして保存するとき、ファイル名は GB2312 でエンコードされる必要があります。
そうしないと、ファイル名に中国語が含まれる場合、文字化け:
PHP 自体が UTF-8 エンコード形式のファイルの場合、
ファイル名変数を UTF-8 から GB2312 に変換する必要があります:
iconv("UTF-8", "GB2312", "$filename") );
プログラムを使用する 文字インターセプト方法の例を見てみましょう
コードをコピーします コードは次のとおりです:

function utf8_substr($str,$len)
{
for($i= 0;$i {
$temp_str=substr($str,0,1);
if(ord($temp_str) > 127){
$i++; $len){
$new_str[]=substr($str,0,3);
$str=substr($str,3)
}else {
$new_str[]=substr($str,0) ,1);
「utf8_general_ci」に設定します
またはステートメントを実行します:



コードをコピーします

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


CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

作成するデータテーブルの場合: このフィールドが中国語を格納する場合は、「組織」を「utf8_general_ci」に設定する必要があります。
このフィールドが英語または数字を格納する場合は、デフォルトで問題ありません。
対応する SQL ステートメント (例:
) コードをコピーします。
コードは次のとおりです:


CREATE TABLE `test` (
`id` INT NOT NULL ,
`name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
2. PHP を使用してデータベースに接続した後、次のようにします:
コードは次のとおりです:


$connection = mysql_connect ($host_name, $host_user, $host_pass);


2 行を追加します:


コードをコピーします
コードは次のとおりです: mysql_query( "setcharacter set 'utf8'");//ライブラリ mysql_query を読み取ります ("set names 'utf8'");//ライブラリ

を書き込みます。これで、MYSQL データベースを通常どおり読み書きできます。
appserv-win32-2.5.10を使用して作成された環境は、このパッケージをインストールするときにデフォルトのutf8エンコーディングを使用します。
データベース接続ファイルを作成するときは、次のように記述します:
コードをコピーします コードは次のとおりです:

$conn = mysql_connect("$host","$user","$password"); mysql_query("SET NAMES 'UTF8'");
mysql_select_db("$database",$conn);

次に、次の文に注意してください:



コードをコピーします
以下の通り:



このように、データベースへの中国語入力またはページ表示に関係なく、すべてが正常になります。
DW CS4 バージョンでは、デフォルトで utf8 ページも生成されます。
同様に、最初にデータベース接続ファイルを作成する場合:
コードをコピーします コードは次のとおりです:

mysql_query("SET NAMES 'GBK'");

ページも次のようになります。必要に応じて変更します:
コードをコピーします コードは次のとおりです:

要約すると、最後はページのエンコーディングです。統合により文字化けの問題は簡単に解決できます。特に、mysql_query() のセット名の設定は、ページおよびデータベースのエンコーディング統計と一致している必要があります。

http://www.bkjia.com/PHPjc/325350.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/325350.html技術記事 PHP ページを UTF-8 エンコーディングに変換する際の問題 1. コードの先頭に行を追加します。次のようにコードをコピーします。 header("Content-Type: text/html;charset=utf-8"); 2. 問題PHP ファイルエンコーディングを使用...のエディターをクリックします
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。