кодировка в MySQL - PullRequest
       7

кодировка в MySQL

2 голосов
/ 24 апреля 2011

Я занимаюсь разработкой блога в MySQL, все будет на английском языке и будет содержать некоторые специальные символы, такие как

`, ~,! @ # $% ^ & * () _ + =- [] {}; '\: "|,. / <>? / * - +

Q1-> Какой кодировке я должен использовать [ и почему ]?
Q2-> в чем разница между UTF-8/16/32 и Latin1?
Q3-> Использует ли UTF-8 меньше места, чем те?
Q4-> Какой набор символов использовать для поддержки бенгали?

[Когда я хочу сохранить 'в моей БД, он конвертирует его в… что очень скучно: x]

MySQL 5.5.8 и PHP 5.3.3

Ответы [ 2 ]

10 голосов
/ 24 апреля 2011

1: UTF-8, поскольку любой интересующий вас символ будет занимать только один байт, плюс его можно расширить, если в будущем у вас будут символы, не найденные в этом.

2 + 3: «Абсолютный минимум, который должен знать каждый разработчик программного обеспечения. Абсолютно, положительно должен знать о юникоде и наборах символов (никаких оправданий!)»

4: UTF-8.

1 голос
/ 24 апреля 2011

Вы можете использовать charset = ISO-8859-1, если у вас есть английский и те символы, которые вы упомянули. Если вы собираетесь использовать бенгальский, вам нужен UTF-8.

define('SQL_HOST','databasehost');<br/> define('SQL_USER','user');<br/> define('SQL_PASS','password');<br/> define('SQL_DB','databasename');<br/> $conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS) or die('Could not connect to the database; ' . mysql_error());<br/> mysql_select_db(SQL_DB, $conn) or die('Could not select database; ' . mysql_error());<br/> mysql_query("SET NAMES 'utf8'");<br/>

Использование mysql_query("SET NAMES 'utf8'"); заботится о UTF-8. Я думаю, что это сработает для бенгальца, как и для Деванагари в моем случае.

Не забудьте указать ту же кодировку в теге meta

< meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

...