【问题标题】:I want to send cyrillic letter to mysqli database with php我想用 php 向 mysqli 数据库发送西里尔字母
【发布时间】:2016-01-17 17:12:31
【问题描述】:

在我的表单所在的 .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

【问题讨论】:

标签: php html mysql mysqli utf-8


【解决方案1】:

您希望得到类似Избере 的东西吗?你有 Mojibake。大概是这样的:

  • 客户端中的字节已正确编码为 utf8(良好)。
  • 您可能默认连接到SET NAMES latin1(或set_charset('latin1') 或...)。 (应该是utf8。)
  • 表格中的列可能是CHARACTER SET utf8,也可能不是,但应该是这样。

如果您需要修复数据,则需要“两步 ALTER”,类似于

ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;

长度足够大并且其他“...”具有其他内容(NOT NULL 等)已经在列中。

不幸的是,如果您要处理很多列,则需要进行大量 ALTER。对于一对 ALTERs 中的单个表,您可以(应该)将所有必要的列 MODIFYVARBINARY

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 2014-03-14
    • 2011-11-19
    相关资源
    最近更新 更多