Привет, я использую этот код для чтения и записи текста в файл.
$d = fopen("chat.txt", "r"); $content=fread($d,filesize('chat.txt')); $bn=explode('||',$content); foreach($bn as $bn) echo $bn.'<br>';
а также
$d = fopen("chat.txt", "a"); $c=$_GET['c']; if($c=='') die(); fwrite($d,$c.'||'); fclose($d);
но in = ie only = utf-8 character show "?" или "[]" . моя кодировка Utf-8 без спецификации и я использую это
header('Content-type: text/html; charset=UTF-8');
и это :
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
моя дефолтная кодировка в php.ini – utf-8, но пока показывается? , Я вижу файл chat.txt и символ в файле, но когда с сохранением в файле И когда шоу на странице показывает «?» вместо права.
Используйте эту функцию вместо fopen во время чтения, но не во время записи
function utf8_fopen_read($fileName) { $fc = iconv('windows-1250', 'utf-8', file_get_contents($fileName)); $handle=fopen("php://memory", "rw"); fwrite($handle, $fc); fseek($handle, 0); return $handle; }
источник
http://www.php.net/manual/en/function.fopen.php#104325
В твоем случае
$d = utf8_fopen_read("chat.txt", "r"); $content=fread($d,filesize('chat.txt')); $bn=explode('||',$content); foreach($bn as $bn) echo $bn.'<br>';
Попробуй это
$content = iconv('windows-1250', 'utf-8', file_get_contents($fileName)); $bn = mb_split('||',$content); foreach($bn as $b) echo $b.'<br>';
TXT был сохранен с помощью utf8 encode? Вам необходимо убедиться, что кодировка TXT – utf-8, иначе вам понадобится использовать функцию utf8_encode
Вы можете кодировать строку, которую вы выводите, $ bn в этом случае, используя utf8_encode () следующим образом:
$d = fopen("chat.txt", "r"); $content=fread($d,filesize('chat.txt')); $bn=explode('||',$content); foreach($bn as $bn) echo utf8_encode($bn).'<br>';
Попробуйте это и посмотрите, все ли это странно.