php 无法将中文字符插入MySQL

siotufzp  于 2023-02-11  发布在  PHP
关注(0)|答案(5)|浏览(185)

这个cookie是用big5集编码的,不能插入MySQL,你能帮我解决这个问题吗?
字段:username为英文,date1为日期,reason1为汉字。

$reason1 = $_COOKIE["reason"];
$sql2="INSERT INTO 
    attendance_count(username,date,count_time,appendix) 
    VALUES ('$username','$date1','0','$reason1')";
mysql_query($sql2);
qpgpyjmq

qpgpyjmq1#

真实的的问题是cookie被编码为big5?客户端 * 中的其余数据 * 是否被编码为utf8?如果两者都为“是”,...
将连接更改为big5,执行cookie的INSERT/SELECT,然后更改回utf8(或者,升级后更改回utf8 mb 4更好)。
执行SET NAMES big5或调用您正在使用的API的charset('big5')函数是来回切换的首选方法。
(同时,远离mysql_*接口;请切换到mysqli_*PDO。)
如果客户端中的所有内容都是big5,则无需来回切换,只需声明客户端使用的是big 5。表/列是否也是big 5并不重要;MySQL将在它们之间进行转换。

yb3bgrhw

yb3bgrhw2#

更新字符集的表列以及与utf8沿着表字符集。可以检查在Mysql工作台更改表,并看到字符集的列,你想支持汉字。

n1bvdmb6

n1bvdmb63#

for those who using c# connector in Visual Studio having difficulty insert chinese character into mysql database. (解决 MySQL 无法正常 insert 中文字题, 出现???乱码)
症状,即在C#查询字符串中
query = $@"INSERT INTO my_table SET name = '草泥马' ;"
在mysql表中插入成功后显示名称=???

MySQL工作台中的解决方案

获取编辑表格模式
1.在故事名称下方,确保表“字符集/集合”设置为“utf8 mb 4”和“utf8mb4_0900_ai_ci”
1.选择“名称”行,在列名下选择**“字符集/集合”和“utf8mb4_0900_ai_ci”,然后单击应用**
返回到Visual Studio。
1.在c#连接字符串中添加“Charset=utf8;“即字符串连接字符串=“服务器=您的服务器ip;端口=3306;数据库=我的数据库;UID=用户;密码=pw;;允许用户变量=True;SslMode=无;字符集=utf8";
应该可以,希望对你有帮助

mccptt67

mccptt674#

创建表时使用UTF-8

create table table_name () CHARACTER SET = utf8;

插入到表时使用UTF-8

set username utf8; INSERT INTO table_name (ABC,VAL);

Read More
And More

    • 详细代码**

下面的代码是经过测试的代码,请做以下工作.
如果您已经创建了数据库,请按照下面的代码对其进行ALTER。如果您没有创建数据库,请创建它并将排序规则设置为utf8_unicode_ci
同样,对于要存储中文字符的表字段,表将排序规则定义为"utf8_unicode_ci"。
一个二个一个一个
结果和步骤见下图。

iovurdzv

iovurdzv5#

对于中文,您确实需要utf8mb4,而不是utf8,这是因为有少量的中文字符需要4字节的UTF8字符,而MySQL的utf8不支持。

相关问题