Проблемы с набором символов

У меня есть небольшое приложение ajax, построенное на php.

Используя phpMyAdmin, я установил для базы данных mysql значение utf-8 и импортировал в нее текстовый файл, содержащий данные utf-8.

Это отлично работало на машине Windows с easyphp после добавления character-set-server = utf8 и default-character-set = utf8 в файл my.cnf.

Теперь я попытался переместить это на рабочий сервер, где у меня нет доступа к файлу конфигурации, а такие символы, как умляуты, не отображаются.

Есть ли что-то, что можно установить в php-коде (а не в файле конфигурации), чтобы исправить это, или какую-то команду, которую я могу дать mysql?

Я попробовал ALTER DATABASE vweb_50 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin с помощью phpMyAdmin, чтобы попробовать из utf8_general_ci, но это не имело никакого значения.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
265
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Здесь нужно сделать несколько вещей, и я не уверен, что правильно понимаю вашу проблему, но если я это сделаю, я думаю, что большую часть ее можно решить с помощью функций PHP utf8_encode и utf8_decode:

  • utf8_encode
    • Кодирует строку ISO-8859-1 в UTF-8
  • utf8_decode
    • Эта функция декодирует данные, предположительно закодированные в UTF-8, в ISO-8859-1.

Кроме того, при необходимости посмотрите htmlentities.

Привет, Джош, я так не думаю. Вы хотите использовать htmlentities или utf8_encode в строке $ rows [] = $ row;, но немного измените его, чтобы вы могли использовать это поле для каждого поля. Или не используйте его в этой функции, но как только вы будете готовы его отобразить.

David 15.01.2009 20:33

Привет, Дэйв, вы имеете в виду что-то вроде htmlentities ($ rows [] = $ row); ?

user1253538 16.01.2009 13:19

Привет, Джош, я имел в виду, что в строке $ rows [] = $ row переменная $ row сама по себе является массивом, поэтому вам нужно будет сделать что-то вроде: $ out = new array (); foreach ($ row as $ k => $ v) {$ out [$ k] = htmlentities ($ v); } $ rows [] = $ out;

David 16.01.2009 15:02

Если вы используете utf-8 во всем приложении (что я бы рекомендовал), вам не нужны функции utf8_encode / decode. Вы проверили, в какой кодировке отображается ваша страница? Вероятно, сервер настроен на отправку iso-8859-1 в виде кодировки, в то время как ваша тестовая среда отправляет utf-8. Установите кодировку с помощью заголовка Content-Type:

header("Content-Type: text/html; charset=utf-8");

Страницы, которые создают символы, являются частью более крупного приложения ajax, а не главной страницы. Установка заголовка для "грабберной" страницы ничего не решает.

user1253538 16.01.2009 13:28

Вам необходимо убедиться, что вы отправляете правильный заголовок со всех своих страниц, включая те, которые вы достигли через xhr.

troelskn 16.01.2009 19:27

Другие вопросы по теме