汉字在数据库中空白

时间:2015-02-27 10:15:36

标签: php encoding mysqli utf-8 character-encoding

我正在为通过此API将订单插入我们的数据库的公司制作API,但我遇到了一个问题:

中文字符不会存储到我的表格中,如何解决?

我有:
- 我的测试文件使用cURL通过标题*发布设置为utf8 - 通过标题*
将数据集插入utf8的API代码 - 将我的phpfile存储为UTF-8编码文件
- mysqli连接设置为utf8($connection->set_charset("utf8")
- mysql-database设置为utf8_general_ci
- mysql-table设置为utf8_general_ci
- mysql-columns设置为utf8_general_ci
- 我将值插入VARCHAR并插入TEXT列(用于测试目的)
- 将值直接插入查询 - >没有结果
- 通过iconv("ISO-8859-1","UTF-8", $text) - >插入值奇怪的结果
- 通过iconv("UTF-8","UTF-8", $text) - >插入值没有结果
- 经过测试的字符,如áéíúó,完美无缺 - 通过foreach($post as $k=>$v){ $data.= $k.'='.$v;}设置curl的后置值作为数据发送 - 通过http_build_query($post)设置curl的后置值作为数据发送 - 在插入SET CHARACTER SET utf8之前使用了一个查询 - 在插入SET NAMES 'utf8'

之前使用了一个查询
  1. 当我在插入之前回显查询时,我会看到中文字符
  2. 当我检查数据库时,它是空白值
  3. (不出意外:)当我选择并输出时,它是空白的
  4. * PHP charset header:

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

    我没有想法,有人吗?

3 个答案:

答案 0 :(得分:0)

我有同样的问题,并使用此查询,我的问题解决了 (“SET CHARACTER SET utf8”)

$mysqli->query("SET CHARACTER SET utf8")

答案 1 :(得分:0)

验证该字段具有utf8_unicode_ci

-Oz

,字符集为utf8

import lxml.etree as ET
xml = ET.parse('C:\\Users\\Admin\\Desktop\\Test2.svg')
svg = xml.getroot()
print(svg)
print(svg.findall(".//{Element {http://www.w3.org/2000/svg}svg at 0x3e107a8"))

答案 2 :(得分:0)

OOP

public function open_connection() {

    $this->connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
        if(mysqli_connect_errno()) {
            $msg = "Database connection failed: ";
            $msg .= mysqli_connect_error();
            $msg .= " (" . mysqli_connect_errno() . ")";
            exit($msg);
        }
        // Change character set to utf8
        mysqli_set_charset($this->connection,"utf8");

      }