Я читаю один персидский текстовый файл (используя PHP) с помощью кода ниже:
/* Reading the file name and the book (UTF-8) */ if(file_exists($SourceDirectoryFile)) { $NameBook = "name.txt"; $AboutBook = "about.txt"; $myFile = "Computer-Technolgy/2 ($i)/".$NameBook; $fh = fopen($myFile, 'r'); $theData = fread($fh, filesize($myFile)); fclose($fh); echo 'Name file: '. $theData.'<hr/>'; }
Содержимое файла name.txt:
آموزش شبكه هاي کامپيوتري (LEARNING NETWORK)
Файл имени: (УЧЕБНАЯ СЕТЬ)
Причина, по которой вы видите это, состоит в том, что вы просто эхом от сырого содержимого. Вашему браузеру потребуется дополнительная информация, чтобы отобразить сообщение в правильной форме.
Самый простой способ – использовать нижеприведенный фрагмент.
/* Reading the file name and the book (UTF-8) */ if (file_exists($SourceDirectoryFile)) { $NameBook = "name.txt"; $AboutBook = "about.txt"; // Using file_get_contents instead. Less code $myFile = "Computer-Technolgy/2 ($i)/" . $NameBook; $contents = file_get_contents($myFile); // I want my browser to display UTF-8 characters header('Content-Type: text/html; charset=UTF-8'); echo 'Name file: ' . $contents . '<hr/>'; }
Обратите внимание, что функция header
должна быть выполнена в начале вывода в браузере. Например, если у вас есть дополнительные данные, которые отображаются до этой функции, вам нужно переместить инструкцию заголовка вверху. В противном случае на экране появится предупреждение о том, что заголовки уже установлены.
Вам нужно убедиться, что страница, на которой отображается текстовый файл, имеет правильную кодировку .
окончательное и лучшее решение: используйте эту строку под своим подключением
mysqli_set_charset( $con, 'utf8');
как это:
$con = mysqli_connect("localhost","root","amirahmad","shoutit"); mysqli_set_charset( $con, 'utf8');
и в конце добавьте эту строку прямо под заголовком заголовка в свой html, чтобы убедиться, что на вашей странице есть кодировка utf-8, например:
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
вот и все . вы можете прочитать официальный документ здесь: pph.net charset