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