我在我的MariaDB中以swe7格式化了一个表的字段,以便从瑞典字母表中托管字符串。然而,当我尝试在我的PHP脚本中输入它们时,我收到错误:
错误INSERT INTO调色板(数字,地址,纬度,经度,时间戳)VALUES('7470618',“ÖstersundTallbacksvägen”,63.18874861617303,14.6445424430311,1440249233)ON DUPLICATE KEY UPDATE number ='7470618',address =“ÖstersundTallbacksvägen “,纬度= 63.18874861617303,经度= 14.6445424430311,时间戳= 1440249233错误:字符串值不正确:'\ xC3 \ x96ster ...'用于第1行的列'地址'
当我直接在DB上执行查询时,查询正确执行并插入行。所以我认为问题出在php脚本中,可能是字符串格式,但我不知道如何调整它。
感谢您的支持
答案 0 :(得分:0)
C396
是Ö
的 utf8 十六进制编码
您是否要使用swe7
,因为您有这样编码的数据?
SET NAMES swe7
(或等效的)。CHARACTER SET
,您可以使用utf8或swe7。使用utf8,您可以处理其他语言。<meta...charset>
。 (我不知道在这种情况下如何拼写'swe7'。)或者你还有其他原因需要swe7吗?
<强> Addeda 强>
计划A:始终使用swe7
- SET NAMES,CHARACTER SET,html meta。
计划B:SET NAMES swe7
和html元字符集的合适值,但表中为CHARACTER SET utf8
。
无论哪种方式,客户端都只会看到swe7编码。
答案 1 :(得分:0)
好的,解决方案是使用utf8并执行两个命令:
$mysqli->query("SET NAMES utf8");
mysqli_set_charset('utf8');
此时,sql表中的编码与utf8和swe7无关。
使用swe7执行此操作不起作用。