这个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);
5条答案
按热度按时间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将在它们之间进行转换。yb3bgrhw2#
更新字符集的表列以及与utf8沿着表字符集。可以检查在Mysql工作台更改表,并看到字符集的列,你想支持汉字。
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";
应该可以,希望对你有帮助
mccptt674#
创建表时使用UTF-8。
插入到表时使用UTF-8
Read More
And More
下面的代码是经过测试的代码,请做以下工作.
如果您已经创建了数据库,请按照下面的代码对其进行ALTER。如果您没有创建数据库,请创建它并将排序规则设置为utf8_unicode_ci
同样,对于要存储中文字符的表字段,表将排序规则定义为"utf8_unicode_ci"。
一个二个一个一个
结果和步骤见下图。
iovurdzv5#
对于中文,您确实需要
utf8mb4
,而不是utf8
,这是因为有少量的中文字符需要4字节的UTF8字符,而MySQL的utf8
不支持。