我正在尝试使用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后开始工作了但是,感谢所有人
答案 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适用于立陶宛语。