Php 数据库中以空白结尾的汉字
我正在为一家公司制作一个API,该公司通过此API将订单插入我们的数据库,但我遇到了一个问题: 中文字符不会存储到我的表中,如何修复此问题? 我有: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
-我的测试文件,它使用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”
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");
}