无法保存我的语言字符

时间:2010-07-30 12:26:40

标签: php mysql database character-encoding

我正在尝试使用php和mysql在我的表单中保存一些数据(名称,姓氏)。 它的形式很简单:

 <input type='text' name='first_name' />

php在提交后获取它:

$first_name = trim(mysql_prep($_POST['first_name']));

问题是,如果我在我的languege(立陶宛语)中输入字符,它将无法保存它们并将变为其他字符。 我设置了我的国家的语言,mysql中的charset也是UTF-8

问题出在哪里?

编辑: 发生了很奇怪的事情。它在我删除所有charset = utf8并设置名称utf8后开始工作了但是,感谢所有人

5 个答案:

答案 0 :(得分:0)

您必须向浏览器发送标题,其中包含UTF-8编码中的页面信息。

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

header('Content-type: text/html; charset=utf-8');

答案 1 :(得分:0)

可能是MySQL连接的错误。正如罗伯特巴斯基所说,

  

正如Jan所说,请阅读   http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html   你很可能需要执行   查询SET NAMES utf8之类的内容   在连接到之后   数据库中。

对于更多可能的原因,请检查How to display a mysql table data in another language properly in php(正如robertbasic所说的两次)。

答案 2 :(得分:0)

你需要meta charset =“UTF8”,你还需要将你的连接字符集设置为utf8。 连接到服务器后执行mysql_query("set names utf8")

答案 3 :(得分:0)

三件事

首先:页面本身必须是utf-8编码,这样可以确保html在head标签中有以下行:

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

第二:确保数据库和表的编码是utf8

和第三:连接到数据库后执行以下语句:

SET NAMES utf8;

答案 4 :(得分:-1)

<meta http-equiv="content-language" content="en, lt">

LT适用于立陶宛语。