MySQL Collation: latin1_swedish_ci Vs utf8_general_ci

Что мне нужно задать для сортировки при создании таблиц в MySQL:

  • latin1_swedish_ci или utf8_general_ci

Что такое сортировка?

Я использую latin1_swedish_ci, это вызовет проблемы?

Ответы

Ответ 1

Что бы вы ни делали, не пытайтесь использовать сопоставление swedish_ci по умолчанию с utf8 (вместо latin) в mysql, или вы получите сообщение об ошибке. Коллажи должны быть сопряжены с правильной кодировкой для работы. Этот SQL не удастся из-за несоответствия в кодировке и сортировке:

CREATE  TABLE IF NOT EXISTS `db`.`events_user_preference` (
  `user_id` INT(10) UNSIGNED NOT NULL ,
  `email` VARCHAR(40) NULL DEFAULT NULL ,
  PRIMARY KEY (`user_id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = latin1_swedish_ci

И @Blaisorblade указал, что способ исправить это - использовать набор символов, который идет со шведской сортировкой:

DEFAULT CHARACTER SET = utf8_swedish_ci

SQL для модуля cal (calendar) для инфраструктуры Yii php имеет нечто похожее на вышеупомянутый ошибочный код. Надеюсь, они уже исправили его.

Ответ 2

Вы можете прочитать о наборах символов и коллаборациях с MySQL 5.5 здесь:
Наборы символов и сортировки в целом
Наборы символов и сортировки в MySQL

Поддержка сортировки необходима для поддержки всех письменных языков мира. Например, на моем языке (датский) у нас есть специальный символ "æ". Это звучит как шведский, немецкий, венгерский (и более) "ä". Этот символ также появляется на датском языке со словами, импортированными из одного из этих языков. Благодаря поддержке сортировки мы можем печатать правильно и одинаково сортировать (ORDER BY...) как идентичные. Без поддержки коллажей это было невозможно.

Шведские сопоставления - это MySQL по умолчанию для латинских кодировок. Он отлично работает с английским. Английский так просто - он работает со всем, потому что у него нет специальных символов, акцентов и т.д. Но если у вас есть другой язык, который вы часто используете (например, испанский), вы можете изменить сортировку на испанский, поэтому сортировка испанских строк быть правильными в соответствии с правилами испанского языка.

Очень особый пример сортировки - один из немецких. Он был создан, чтобы разрешить сортировку, как в немецких телефонных книгах. Немецкие телефонные книги не соответствуют общим правилам немецкого языка!

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

Ответ 3

В Wamp Server 2.5 вы можете изменить сортировку, перейдя в PHPAdmin, выбрав базу данных, которую нужно изменить. Это даст вам еще один набор вкладок. Выберите вкладку "Операции". На этой вкладке будет раздел "сортировка", выберите тот, который вы хотите в раскрывающемся списке, и выберите "go".

Ответ 4

Попробуйте следующее:

<?php
echo htmlspecialchars($string);
echo htmlentities($string);
?>

Вы можете увидеть дополнительную информацию от http://php.net/manual/en/function.htmlspecialchars.php.: D

Работал для меня! Больше алмазов:)