MySQL中的charset

时间:2011-04-24 06:57:27

标签: php mysql character-encoding

我正在使用MySQL开发一个博客,一切都将使用英文,并包含一些特殊字符,如

  

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

Q1->我应该使用哪个charset [以及为什么]? Q2-> UTF-8/16/32和Latin1有什么区别?
Q3-> UTF-8使用的空间是否少于那些?
Q4->用哪个charset支持bengali?

[当我想保存'在我的数据库中它将它转换为'真的很无聊:x]

MySQL 5.5.8和PHP 5.3.3

2 个答案:

答案 0 :(得分:10)

1:UTF-8,因为您关心的任何字符只占用一个字节,如果将来您在其中找不到字符,则可以扩展它。

2 + 3:"The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)"

4:UTF-8。

答案 1 :(得分:1)

如果你有英文和你提到的那些符号,你可以使用charset = ISO-8859-1。如果你打算使用孟加拉语,你需要UTF-8。

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

使用mysql_query("SET NAMES 'utf8'");负责UTF-8。我认为它适用于孟加拉语,因为它适用于我的案例中的梵文。

不要忘记在meta标记

中提及相同的编码

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