検索
ホームページバックエンド開発PHPの問題PHP形式のファイルが文字化けして開く方法

PHP形式のファイルが文字化けして開く方法

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

<meta http-equiv=&#39;Content-Type&#39; content=&#39;text/html; charset=utf-8&#39; /

順序が間違っているわけがありません。

に表示されるタイトルが文字化けしている可能性があります。 (php ビデオ チュートリアル )

2.html ファイルのエンコードの問題:

エディタ メニューをクリックします: [ファイル] -> [保存] as" と表示すると、現在のファイルのエンコーディングが表示されます。ファイル エンコーディングが UTF-8、
ANSI の場合は、エンコーディングを UTF-8 に変更する必要があります。
3.HTML ファイル ヘッダーの BOM の問題:
ファイルを他のエンコーディングから UTF-8 エンコーディングに変換するとき、ファイルの先頭に BOM タグが追加されることがあります。ブラウザで中国語を表示すると文字化けが発生します。
この BOM タグを削除する方法:
1. Dreamweaver でファイルを開いて再保存すると、BOM タグを削除できます。
2. EditPlus を使用してファイルを開き、メニューの「環境設定」->「ファイル」->「UTF-8 ID」で、「署名を常に削除する」に設定します。ファイルを保存すると、BOM タグを削除できます。
4. WEB サーバーの UTF-8 エンコードの問題:
上記の手順に従っても中国語の文字化けの問題が解決しない場合は、
使用している WEB サーバーのエンコードの問題を確認してください
次の場合Apache を使用している場合は、設定ファイルの文字セットを utf-8 に設定してください (ここにはメソッドのみがリストされています。特定の形式については、Apache 設定ファイルを参照してください)
Nginx を使用している場合は、nginx に設定してください.conf: charset is set to utf-8.
具体的には、「charset gb2312;」または同様のステートメントを見つけて、「charset utf-8;」に変更します。

2. 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");

5. 記事タイトルが切り詰められて表示されると文字化けや「?」が発生します。 ”疑問符の質問:
通常、記事タイトルが非常に長い場合、タイトルの一部が表示され、記事タイトルが切り詰められます。

UTF-8 エンコード形式の中国語文字は 3 文字を占めるため、幅の

タイトルをインターセプトする場合、漢字の幅の 1 文字または 2 文字しかインターセプトされない場合があります。
インターセプトが完了していないと文字化けや「?」が表示されます。 ”疑問符の場合、
次の関数を使用してタイトルをインターセプトすれば問題ありません:


function get_brief_str($str, $max_length) 
{ 
echo strlen($str) ."<br>"; 
if(strlen($str) > $max_length) 
{ 
$check_num = 0; 
for($i=0; $i < $max_length; $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 を使用してデータベースとデータ テーブルを作成します

データベースを作成するときは、「組織」を「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 NOT NULL , 
PRIMARY KEY ( `id` ) 
) ENGINE = MYISAM ;

)

2.用PHP读写数据库

在连接数据库之后:

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

加入两行:

mysql_query("set character set &#39;utf8&#39;");//读库
mysql_query("set names &#39;utf8&#39;");//写库

就可以正常的读写MYSQL数据库了。

四.JS相关的UTF-8编码问题 
1.JS读Cookie的中文乱码问题 

PHP写cookie的时候需要将中文字符进行escape编码, 
否则JS读到cookie中的中文字符将是乱码。 
但php本身没有escape函数,我们新写一个escape函数: 
function escape($str) 
{ 
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r); 
$ar = $r[0]; 
foreach($ar as $k=>$v) 
{ 
if(ord($v[0]) < 128) 
$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页面是UTF-8编码格式的文件,

外部的JS文件同样要转成UTF-8的文件,

否则将出现,没有包含不成功,调用函数时没有反应的情况。

点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8,

如果是ANSI,需要将编码改成:UTF-8。

五.FLASH相关的UTF-8编码问题

FLASH内部对所有字符串,默认都是以UTF-8处理 
1.FLASH读文普通本文件(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的,直接echo就可以了 
如果PHP编码本身是GB2312的,可以将PHP转存成UTF-8编码格式的文件,直接echo就可以了
如果PHP编码本身是GB2312的,而且不允许改文件的编码格式, 
用下面的语句将字符串转换成UTF-8的编码格式 
$new_str = iconv("GB2312", "UTF-8", "$str"); 
再echo就可以了 
4.FLASH读数据库(MYSQL)的数据 
FLASH要通过PHP读取数据库中的数据 
PHP本身的编码不重要,关键是如果数据库的编码是GB2312的话, 
需要用下面的语句将字符串转换成UTF-8的编码格式 
$new_str = iconv("GB2312", "UTF-8", "$str"); 

5.FLASH通过PHP写数据 
一句话,FLASH传过来的字符串是UTF-8格式的, 
要转换成相应的编码格式,再操作(写文件、写数据库、直接显示等等) 
还是用iconv函数转换 
6.FLASH使用本地编码(理论上不推荐使用) 
如果想让FLASH不使用UTF-8编码,而是使用本地编码 
对于中国大陆地区而言,本地编码是GB2312或GBK 
AS程序内,可以添加以下代码: 
System.useCodepage = true; 
那么FLASH内所有字符都是使用GB2312的编码了 
所有导入到FLASH或者从FLASH导出的数据,都应该做相应的编码转换 
因为使用本地编码,会造成使用繁体中文地区的用户产生乱码,所以不推荐使用

以上がPHP形式のファイルが文字化けして開く方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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