Как через php успешно записать в базу греческую мю?

Ссылка скопирована
17 апреля 2026 1 ответ

Правлю код. В html мю, которую достал из БД, правильно отображается и кодом μ и кодом μ
В базе данных допустимые значения пробывал и G.711μ и G.711μ
Вот выбор по ключу в php перед записью в БД

$arr_codecs = array("ulaw" => "G.711μ"); $arr_codecs = array("ulaw" => "G.711μ");

$arr_codecs = array("ulaw" => "G.711μ"); $arr_codecs = array("ulaw" => "G.711μ");

и так и так пробывал - не записывает в БД. Может экранировать что надо. Или может еще сортировщик после составления массива отбрасывает.

ОС Ubuntu server 14, PHP5

Дополнительно:

Так и записывайте "G.711μ"
В PHP нет проблем со строками содержащими unicode-символы

База данных прекрасно может хранить и символ &, и символ #, и цифры, и разумеется точку с запятой ;. PHP отлично умеет хранить это в переменных. И даже больше, в SQL и PHP сам символ может храниться в чистом виде, если всё в UTF-8.

Теперь собственно вопрос: вы не можете нормально сформулировать, что именно у вас не получается? Проблема с описанием проблемы? Не хватает словарного запаса? Не знаете понятий, с помощью которых можно обяснить вашу проблему?

  • Тогда подскажите плииз, как ввести мю в консоли Ubuntu, чтобы в код php и в Postgresql записалась буква, поскольку сервер без X.
  • Если консоль настроена на UTF-8 (проверять командой locale, смотреть на .UTF-8 в строке LANG=en_US.UTF-8), то просто вставляете из буфе... Ам. Упс. Вы сидите на сервере из-под Windows по SSH, или физически? Если физически - то я не знаю, как с клавиатуры генерировать такие символы. В консоли можно писать "μ", а уже в скрипте преобразовывать
    $argv[1] = preg_replace("/(μ|μ)/", "u{03bc}", $argv[1]);

    $argv[1] = preg_replace("/(μ|μ)/", "u{03bc}", $argv[1]);

    И вуаля, у вас чистый UTF-8!

  • Через pgadmin ввожу мю в базу, в PHP ввожу мю - теперь все работает, записывает, НО: в html отображает как u
  • И в терминале psql мю тоже отображается как u латинская (локаль в консоли сервера ubuntu латинская).
  • dimone73, вот латинская консоль и конвертирует UTF-8 в ASCII, что бы показать ну хоть какой-то символ (вместо пустого места). Помоему так.
    А HTML страница с этим неправильным мю - в кодировке UTF-8? Загрузка данных из SQL в PHP идёт на кодировке UTF-8?
  • Решилось правкой кода PHP для отображения на странице HTML
    if ($v->hrn == "G.711u") {echo '<span>' . 'G.711μ' . '</span></li>';}

    if ($v->hrn == "G.711u") {echo '<span>' . 'G.711μ' . '</span></li>';}

    В базе упорно видит обычную латинскую u хотя записывал mu

  • dimone73, а остальной текст в базе данных, русский например - у вас в какой кодировке? Видимо не в UTF-8?
  • Без малейшего понятия. База старая, делал не я. Проверить - искать уже не хочется. Но греческие символы не отображает. И pgadmin не отображает. И консоль Ubuntu. Краем уха читал о возможности перекодировки в Postgres, но сейчас заниматься этим нет желания: главное же в HTML теперь видится нормально. Все мю записывал из внешних приложений, не из консоли.
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Анна SEO Ответ

Для успешной записи символа греческой буквы "мю" (μ) в базу данных через PHP, необходимо убедиться в правильной настройке кодировки и выборе правильного типа столбца в таблице базы данных.

1. Настройка кодировки:
Убедитесь, что ваша база данных и таблица настроены на использование UTF-8 или другой подходящей кодировки, поддерживающей символы Unicode. Это можно сделать при создании базы данных или изменении существующей структуры.

2. Выбор правильного типа столбца:
При создании таблицы в базе данных укажите тип столбца, поддерживающий Unicode символы. Например, для MySQL можно использовать тип данных VARCHAR с указанием кодировки UTF-8.

Пример создания таблицы с поддержкой греческой буквы "мю" в MySQL:

CREATE TABLE my_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci
);

CREATE TABLE my_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci );

3. Запись данных в базу данных:
При вставке данных в таблицу убедитесь, что данные корректно преобразуются в кодировку базы данных. Для PHP можно использовать функцию mysqli_set_charset() для установки кодировки соединения с базой данных.

Пример записи данных с греческой буквой "мю" в MySQL через PHP:

$mysqli = new mysqli("host", "username", "password", "database");
$mysqli->set_charset("utf8");
 
$name = "Греческая буква мю: μ";
$query = "INSERT INTO my_table (name) VALUES ('$name')";
$mysqli->query($query);

$mysqli = new mysqli("host", "username", "password", "database"); $mysqli->set_charset("utf8"); $name = "Греческая буква мю: μ"; $query = "INSERT INTO my_table (name) VALUES ('$name')"; $mysqli->query($query);

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

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно