ホームページ >バックエンド開発 >PHPチュートリアル >PHP が特殊文字を含むディレクトリを読み取るとどうなりますか? 挿入された UTF8 エンコードされたデータを MYSQL に正しく表示させるにはどうすればよいですか?

PHP が特殊文字を含むディレクトリを読み取るとどうなりますか? 挿入された UTF8 エンコードされたデータを MYSQL に正しく表示させるにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-13 12:29:381054ブラウズ

PHP が特殊文字を含むディレクトリを読み取ると、? になります。挿入された UTF8 エンコード データを MYSQL に正しく表示させる方法
123.txt ファイル エンコード UTF8、ブラウザ ページ エンコード UTF8、Windows システム、コード ページ 936
新しいフォルダーにはフォルダーが 1 つだけあり、ファイル名は http://zhidao.baidu.com/link?url=9iTctYWxBKDqzxTH-QrBs5t6Q9lhRkutHCfJHaGRNlzsswkqWsnYLdtKfCk7F_AJQwMm2yxJmoOCLDGipSjr-a です。CSDN では直接送信することは許可されていません =。 =

<br />
<?php<br />
	$path = iconv("UTF-8", "GBK", "F:/新建文件夹/");<br />
	$dir = dir($path);<br />
	$fopen = fopen("F:/123.txt", "a");<br />
	<br />
	while ($file = $dir->read()) {<br />
		if ($file != "." && $file != "..") {<br />
			$file = iconv("GBK", "UTF-8", $file);<br />
			echo $file;<br />
			//fwrite($fopen, $file));<br />
		}<br />
	}<br />
	fclose($fopen);<br />
?><br />

エコーがブラウザに出力されるか、123.txt に保存されるかにかかわらず、? が表示されます。
1. is_dir($path.$file); を試してみたところ、空と表示されたので、この疑問符は表示の問題ではなく、read() 中に Windows によって返された ASCII だと思います。普通にそれ?
2. また、UTF8 でエンコードされたデータを MYSQL に保存する必要があり、MYSQL で文字化けが表示されないようにする必要があります。MYSQL では、データベース、テーブル、およびカラムのデータ型とソート タイプをどのように選択すればよいですか?
ありがとう!あなたのプログラムを見せてください
1.$fopen は使用されていませんが、これを作成する目的は何ですか?
2.is_dir($path.$file); is_dir がディレクトリであるかどうかを判断し、$path.$file がファイルであるため false を返すため、空が表示されます。

123.txtの内容を読み込んで表示するだけであれば、次のように記述できます。
<br />
<?php<br />
$path = iconv("UTF-8", "GBK", dirname(__FILE__).'/新建文件夹/');<br />
$file = '123.txt';<br />
<br />
echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';<br />
echo file_get_contents($path.$file);<br />
?><br />

キーは 3b367e28b2667d1d1949587fd0a543d7 で、ページのエンコーディングを設定します。


2. データベースを文字化けせずに保存したい場合は、mysql
を設定します。 Character_set_client: クライアントのソース データで使用される文字セット
Character_set_connection: 接続層の文字セット
Character_set_results: クエリ結果の文字セット
utf8 の場合、
mysqlのエンコード設定については、 http://blog.csdn.net/fdipzone/article/details/18180325
を参照してください。 これはコーディングとは何の関係もありませんね?

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