Полезные заметки php, jquery, mysql, ubuntu, android
admin
Очень часто бывает такая задача: просклонять слово в зависимости от числа и вывести не 21 комментариев а 21 комментарий и […]
Read more
irusik
В это статье мы рассмотрим как вставить в таблицу Excel одну или несколько строк.
Read more
irusik
В большинстве случаев информация воспринимается гораздо лучше, если она представлено наглядно — в виде графика или диаграммы. В Эксель есть […]
Read more
irusik
Excel предлагает очень много возможностей для работы с данными. В нем можно проводить безумное количество вычислений без особого труда. В […]
Read more
irusik
При создании документа в Microsoft Excel по умолчанию применяется шрифт Calibri с размером 11 px. Иногда необходимо его изменить, увеличить […]
Read more
adminИногда возникает такая задача, которая может казаться довольно глупой
Read more
irusik
Часто возникает необходимость посмотреть сохраненные пароли в браузере, например, для того, чтобы передать его кому-то или набрать на другом устройстве. […]
Read more
irusik
Случалось ли вам работать в большим количеством вкладок в браузере? Если да, то наверняка вы закрывали нужные вкладки. В этой […]
Read more
admin
Как то раз задался вопросом: как можно отслеживать исходящий трафик с сервера на centos, debian или ubuntu?
Read more
irusik
На сегодняшний день Яндекс является самой популярной поисковой системой в России и СНГ. В этой статье мы рассмотрим как сделать […]
Read more
irusik
Иногда необходимо сфотографировать экран монитора. Существует несколько способов сделать снимок экрана на компьютере или ноутбуке с системой Windows. Рассмотрим самый […]
Read more
irusik
Всем известно, что интернет-браузеры сохраняют историю посещений и поиска. Иногда требуется полностью стереть историю просмотров.
Read more
- Популярное
- Новое
unicode — установка кодировки PHP по умолчанию на UTF-8
спросил
Изменено 1 год, 3 месяца назад
Просмотрено 197 тысяч раз
В «Поваренной книге PHP» сказано (стр. 589), что для правильной установки кодировки исходящих данных в UTF-8 необходимо отредактировать default_encoding конфигурация utf-8 .
Однако я не могу найти эту конфигурацию в файле php.ini . Должен ли я просто добавить строку default_encoding = "utf-8"
?
У меня есть ;default_charset = «iso-8859-1» . Как видите ( ;
), сейчас он не активирован. Должен ли я удалить точку с запятой и установить ее на "utf-8"
Я также нашел другие директивы кодирования, с которыми я не знаю, что делать:
[значок] ;iconv.input_encoding = ISO-8859-1 ;iconv.internal_encoding = ISO-8859-1 ;iconv.output_encoding = ISO-8859-1 ... ; http://php.net/exif.encode-юникод ;exif.encode_unicode = ISO-8859-15 ... ;mssql.charset = "ISO-8859-1" ... ;exif.encode_unicode = ISO-8859-15
Есть ли причина, по которой я не должен просто заменить их все на utf-8
?
- php
- unicode
- кодировка
- кодировка символов
Вы должны установить default_charset
в UTF-8:
default_charset = "utf-8"
( PHP Cookbook может быть опечатка, если вас попросят изменить default_encoding
— я никогда не слышал об этом. )
Вы также должны убедиться, что ваш веб-сервер настроен на вывод UTF-8, если вы собираетесь выводить символы в кодировке UTF-8. В Apache это можно установить в файле httpd.conf :
AddDefaultCharset UTF-8
Что касается изменения настроек кодирования iconv
, exif
и mssql
, вам, вероятно, не нужно устанавливать их (ваши настройки все равно закомментированы), но рекомендуется изменить их все на UTF-8 во всяком случае.
Изменить строку
;default_charset = "iso-8859-1"
для чтения
default_charset = "utf-8"
Остальные параметры не трогайте. Избегайте настроек по умолчанию, всегда явно устанавливайте кодировку во всем, что вы делаете
- соединения с базой данных,
- чтение и запись файлов,
- преобразование с помощью iconv.
Также остерегайтесь кодировки, в которой сохраняются ваши файлы PHP, убедитесь, что они в UTF-8, особенно если они содержат строки для отображения или сравнения.
У меня возникла проблема с моим запросом MySQL: он не распознавал некоторые латинские акценты, поэтому запрос не выполнялся. Я думал, что это может быть файл PHP и так далее, пока не обнаружил, что с помощью PDO для вызова функции MySQL мне пришлось добавить набор символов. Странно то, что на предыдущем сервере, который я использовал, он работал нормально! 9 2
На уровне htaccess (файл .htaccess) директива PHP должна быть php_value default_charset UTF-8
.
Чтобы решить эту проблему, я изменил «UTF-8» на «UTF-8» (без тире), вместо этого решив проблему.
Это было на CentOS.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и парольОпубликовать как гость
Электронная почтаОбязательно, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
PHP — UTF-8
DevTutВвод
Выход
- HTML5
- Старые версии HTML
- Укажите набор символов `utf8mb4` для всех таблиц и текстовых столбцов в вашей базе данных. Это заставляет MySQL физически хранить и извлекать значения, изначально закодированные в UTF-8.
MySQL будет неявно использовать кодировку `utf8mb4`, если указана сортировка `utf8mb4_*` (без явного набора символов).
— Старые версии MySQL (< 5.5.3) не поддерживают `utf8mb4`, поэтому вам придется использовать `utf8`, который поддерживает только подмножество символов Unicode. - В коде вашего приложения (например, PHP), в любом методе доступа к БД, который вы используете, вам необходимо установить кодировку соединения на `utf8mb4`. Таким образом, MySQL не выполняет преобразование из своей родной UTF-8, когда передает данные вашему приложению и наоборот.
- Некоторые драйверы предоставляют собственный механизм настройки набора символов соединения, который одновременно обновляет собственное внутреннее состояние и информирует MySQL о кодировке, которая будет использоваться для соединения. Обычно это предпочтительный подход.
Например (применяется то же соображение относительно `utf8mb4`/`utf8`, что и выше):
- Если вы используете уровень абстракции [PDO](http://www.php.net/manual/en/book.pdo.php) с PHP ≥ 5. 3.6, вы можете указать `charset` в [DSN] (http://www.php.net/manual/en/ref.pdo-mysql.connection.php):
- Если вы используете [mysqli](http://www.php.net/manual/en/book.mysqli.php), вы можете вызвать [`set_charset()`](http://www.php.net /manual/ru/mysqli.set-charset.php):
- Если вы застряли с обычным [mysql](http://www.php.net/manual/en/book.mysql.php), но используете PHP ≥ 5.2.3, вы можете вызвать [`mysql_set_charset`] (http://www.php.net/manual/en/function.mysql-set-charset.php).
- Если драйвер базы данных не предоставляет собственного механизма для установки набора символов соединения, вам, возможно, придется выполнить запрос, чтобы сообщить MySQL, как ваше приложение ожидает, что данные для соединения будут закодированы: [`SET NAMES ‘utf8mb4’`](http ://dev.mysql.com/doc/en/charset-connection.html).
- Вы должны убедиться, что каждый раз, когда вы обрабатываете строку UTF-8, вы делаете это безопасно. Это, к сожалению, самая сложная часть. Вероятно, вы захотите широко использовать расширение PHP [`mbstring`](http://www.
Хранение данных и доступ к ним
В этом разделе конкретно рассматривается UTF-8 и рекомендации по ее использованию с базой данных. Если вам нужна дополнительная информация об использовании баз данных в PHP, ознакомьтесь с этой темой (открывается в новом окне).
Хранение данных в базе данных MySQL:
Доступ к данным в базе данных MySQL: