0

ファイルへのデータ(特殊文字を含む)の読み書きに問題があります。

私はこのようなことをしています:

//Writing data..
<?php
   header('Content-Type: text/html; charset=utf-8');

   $file = 'filename.db';
   $data = 'Some string with special characters';

   //Writing to the file..
   @file_put_contents($file, json_encode($data));

?>

これはうまくいきます。Notepad ++でdbファイルを開くと、データは適切です。特殊文字も適切に保存されます。

 //Reading data..
 <?php
   header('Content-Type: text/html; charset=utf-8');

   $file = 'filename.db';

   //Reading from the file..
   $data = file_get_contents($file);
   $data = json_decode(utf8_encode(stripslashes($data)));

   echo $data;

 ?>

これにより、特殊文字が「????」として表示されます。または、「u00cf」やその他の文字のようなものもあります。

何が問題で、どこで問題が発生していますか?

助けていただければ幸いです、ありがとう。

4

2 に答える 2

1
  1. 配列やその他の複雑なデータ構造を保存していない場合、JSON は必要ありません。
  2. ファイルから読み取るとき、スラッシュを削除して実行することで、なぜ神の名においてデータを虐待するのutf8_encodeですか? それが JSON 形式を破壊し、それによってデータを破壊しているものです。

生の文字列をファイルに書き込んで、そのまま読み返すだけで完了です!

$string = 'ユーティーエッフエイト';
file_put_contents('file.txt', $string);
$string = file_get_contents('file.txt');

もう何もする必要はありません。

于 2013-09-23T06:52:29.110 に答える
0

データ読み取りスクリプトで、次を試してください。

$data = json_decode(mb_convert_encoding(stripslashes($data), "UTF-8"));

于 2013-09-23T06:36:43.747 に答える