在 forma swe7 中按 php 在 Maria 数据库中插入数据

Insert data by php on Maria db in forma swe7

我在 swe7 的 MariaDB 中格式化了一个 table 的字段,以托管来自瑞典字母表的字符串。然而,当我尝试在我的 php 脚本中输入它们时,我收到错误消息:

error INSERT INTO palette (number, address, latitude, longitude, timestamp) VALUES ('7470618', "Östersund Tallbacksvägen", 63.18874861617303, 14.6445424430311, 1440249233) ON DUPLICATE KEY UPDATE number='7470618', address="Östersund Tallbacksvägen", latitude=63.18874861617303, longitude=14.6445424430311, timestamp=1440249233 error:Incorrect string value: '\xC3\x96ster...' for column 'address' at row 1

当我直接在数据库上执行查询时,查询正确执行并插入了行。所以我认为问题出在 php 脚本中,可能是它的字符串格式,但我不知道如何调整它。

感谢您的支持

C396utf8 十六进制编码 Ö

你想使用 swe7 因为你有这样编码的数据吗?

  • SET NAMES swe7(或等效)从您的客户端连接到 mysql。
  • 对于表格中的 CHARACTER SET,您可以使用 utf8 或 swe7。使用 utf8,您可以处理其他语言。
  • 如果输出在网页上,请务必指定适当的 <meta...charset>。 (我不知道在那种情况下如何拼写 'swe7'。)

或者您有其他想要 swe7 的原因吗?

已添加

计划 A:始终使用 swe7 -- 名称集、字符集、html 元。

B 计划:SET NAMES swe7 和 html 元字符集的合适值,但表中 CHARACTER SET utf8

无论哪种方式,客户端都只会看到 swe7 编码。

好的,解决方案是使用 utf8 并执行两个命令:

$mysqli->query("SET NAMES utf8");
mysqli_set_charset('utf8');

此时 sql table 中的编码与 utf8 和 swe7 无关。

不过,用 swe7 这样做是行不通的。