Intereting Posts
Как создать и загрузить файл csv из php-скрипта? Ошибка Laravel: метод Illuminate \ View \ View :: __ toString () не должен генерировать исключение Как получить json-данные в javascript отправка клиенту сообщений клиента без взаимодействия с сервером PHP проверяет числовое значение внутри цикла foreach с парами ключей и значений? Как использовать интерактивную оболочку PHP Загрузить HTML-код, содержащий пространства имен с DOMDocument Быстрее использовать MySQL CURDATE () или дату PHP ()? Получение валютного символа из кода валюты Нарушение ограничения целостности: 1048 Столбец «taggable_id» не может быть нулевым Не удалось утверждать, что статус HTTP равен 200 не 500 Загрузка объекта из сеанса PHP вызывает вызов конструктора? как запрашивать имена столбцов таблицы Paypal IPN не работает в учетной записи PayPal, но работает правильно в песочнице Регулярное выражение для соответствия неограниченному числу параметров

PHP японские строки получают?

У меня есть PHP-файл с одной простой функцией эха:

echo 'アクセスは撥ねりません。'; 

но когда я получаю доступ к этой странице, я получаю следующее:

 ???????????? 

Кто-нибудь может мне помочь? У меня также есть кодировка страниц, установленная в UTF-8, и я это знаю, потому что все браузеры, которые я использовал, так говорили. Я также делаю это до функции эха:

 mb_internal_encoding('UTF-8'); 

Что это делает? Помогает ли мне это? Все, что мне нужно, – это эхо статической японской строки.

Благодаря!

Есть несколько мест, где это может пойти не так.

Во-первых, если вы не устанавливаете выходную кодировку в php с заголовком ()

 header('Content-type: text/html; charset=utf-8'); 

или в вашем html метатеге:

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

вам нужно будет проверить настройку php.ini default_charset . Скорее всего, это по умолчанию iso-8859-1

Во-вторых, вам также может потребоваться проверить кодировку содержимого, которую вы сохраняете как скрипт php. Если вы сохраните его как ASCII или какую-либо другую латинскую кодировку, она будет разбивать символы.

Я понял. Мне просто нужно было установить настройки расширения mbstring для обработки внутренних строк в UTF-8. Это расширение стандартно с моей сборкой PHP 5.3.0.

Возможно, вы печатаете японские символы, содержащиеся в UTF-16 (расширенный набор символов)?

Я просто сделал быстрый тест, и ваш пример работает для меня, так что, скорее всего, один из них:

  • Ваш файл не сохраняется в UTF-8, но некоторая другая кодировка, например Shift-JIS. Достойный редактор должен иметь возможность видеть, какая кодировка используется
  • Ваш сервер отправляет плохие заголовки http. Можете ли вы использовать какой-либо инструмент для проверки заголовков и вставки результатов? Или результаты, полученные в браузере?
  • Браузер использует несовместимый шрифт

Я сохранил файл в UTF-8, вставил в него свой код, и мой сервер обслуживает файл с Content-Type: text / html; charset = utf-8, и он отображается просто отлично. Не нужно было использовать функцию mb_ или что-то еще.