Прочитать персидский (Unicode chars) текстовый файл, используя php

Я читаю один персидский текстовый файл (используя 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