Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库中以空白结尾的汉字_Php_Encoding_Mysqli_Utf 8_Character Encoding - Fatal编程技术网

Php 数据库中以空白结尾的汉字

Php 数据库中以空白结尾的汉字,php,encoding,mysqli,utf-8,character-encoding,Php,Encoding,Mysqli,Utf 8,Character Encoding,我正在为一家公司制作一个API,该公司通过此API将订单插入我们的数据库,但我遇到了一个问题: 中文字符不会存储到我的表中,如何修复此问题? 我有: -我的测试文件,它使用cURL通过头文件*将设置后置为utf8 -通过标头将数据集插入utf8的API代码* -将我的phpfile存储为UTF-8编码文件 -mysqli连接设置为utf8($connection->set\u字符集(“utf8”)) -mysql数据库设置为utf8\u常规\u ci -mysql表设置为utf8\u常规\u c

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

中文字符不会存储到我的表中,如何修复此问题?

我有:
-我的测试文件,它使用cURL通过头文件*将设置后置为utf8 -通过标头将数据集插入utf8的API代码*
-将我的phpfile存储为UTF-8编码文件
-mysqli连接设置为utf8(
$connection->set\u字符集(“utf8”)

-mysql数据库设置为
utf8\u常规\u ci

-mysql表设置为
utf8\u常规\u ci

-mysql列设置为
utf8\u常规\u ci

-我将值插入VARCHAR和文本列(用于测试)
-将值直接插入查询->无结果
-通过iconv(“ISO-8859-1”、“UTF-8”和$text)插入值 -通过iconv(“UTF-8”、“UTF-8”和$text)插入值。->无结果
-测试过的字符,如
á戥í戥ó
,工作非常好
-通过
foreach($k=>v)为curl设置我的postValue{$data.=$k.='.$v;}
作为数据发送
-通过
http\u build\u query($post)
为curl设置我的postValue以作为数据发送
-在插入之前使用查询执行
设置字符集utf8

-在插入之前使用查询执行
设置名称“utf8”

  • 当我在插入前回显查询时,我看到了汉字
  • 当我检查数据库时,它是空值
  • (并非意外:)当我选择并输出它时,它是空的
  • *PHP字符集标题:

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

    我没有主意了,有人吗?

    我也有同样的问题,使用这个查询,我的问题就解决了 (“设置字符集utf8”)


    验证该字段是否具有utf8\U unicode\U ci

     CREATE TABLE `table` (
          `id` int(15) NOT NULL,
          `fieldname` varchar(20) NOT NULL,
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    
    字符集是utf8

        mysqli_set_charset($con,"utf8");
    
    哎呀


    如果在将任何内容发送到db之前运行此命令,您会进行任何更改
    设置名称“utf8”
    ?刚刚尝试,没有结果可以显示使用表定义吗?我只看到字符集没有关于排序规则的内容请执行
    选择十六进制(col),col…
    ,以便我们可以看到无法正确显示的值。有几件事情可能出了问题;这将有助于我们集中精力。See也有一个类似的问题,是的,角色只是在没有任何痕迹或通知的情况下发出声音。就我而言,utf-8并不是整个蒙蒂。我需要utf8mb-列/表中的集合、字符集、名称等。因此,请确保您的utf8类型确实包含要插入的内容。如您所见,我在我所做的事情列表中有一个
    set\u charset()
    。不管怎样,我还是会试试这个,但我对此表示怀疑:)
        mysqli_set_charset($con,"utf8");
    
    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");
    
          }