我想用php向mysqli数据库发送西里尔字母

时间:2016-01-17 17:12:32

标签: php html mysql mysqli utf-8

在我的.html文档中,我的表单是

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

在.php文件中,我连接到我尝试使用

的数据库
mysql_set_charset('utf8');   
// and 
// <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

和此:

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

数据库行使用排序规则:utf8_unicode_ci

1 个答案:

答案 0 :(得分:0)

你希望有Избере之类的东西?你有Mojibake。可能这就是发生的事情:

  • 客户端中的字节在utf8(正常)中正确编码。
  • 您可能默认与SET NAMES latin1(或set_charset('latin1')或...)相关联。 (应该是utf8。)
  • 表格中的列可能是CHARACTER SET utf8,也可能不是ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...; ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...; ,但应该是这样。

如果您需要修复数据,则需要“两步更改”,例如

NOT NULL

其中长度足够大而另一个“......”还有其他任何内容(MODIFY等)已经在列上。

不幸的是,如果您要使用很多列,则需要很多ALTER。对于VARBINARY对中的单个表,您可以({should} ALTERs std::initializer_list<int>所有必要的列。