gpt4 book ai didi

mysql - Node js中的非英文字符编码

转载 作者:行者123 更新时间:2023-11-30 21:41:20 24 4
gpt4 key购买 nike

我有一个 PHP 代码和 Node js 代码,用于保存一些信息到 MySQL 数据库或从中获取一些信息。一些数据是外文的。所有编码(数据库、表、字段)都设置为 utf8。
如果我通过 PHP 将“якийсь текст”之类的内容发送到数据库,在数据库中它看起来像“ÑÙийÑÑŒ текÑÑ‚”,如果我使用 PHP 从数据库中检索此文本,我会得到“якийсь текст”,这很好。< br/> 但是当我使用 Node 将相同的文本发送到数据库时,在数据库中它将按原样保存(якийсь текст)但是当使用 PHP 从数据库中检索它时 - 我只得到问号。在 Node mysql.createConnection 中,我设置了 charset: 'utf8' 并添加了 conc.query("SET NAMES utf8") 。
所以我不确定我做错了什么。
谢谢

最佳答案

那是 Mojibake。参见 this原因。

这也讨论了“问号”。

既然你有两个症状,我建议你至少有两个编码错误。因此,也请参阅该链接中的“最佳实践”。

向我们展示:

  • 连接字符串
  • 显示创建表
  • SELECT HEX(col), col FROM tbl WHERE ...

它可能是“双重编码”——这很隐蔽,因为它看起来不错,除非您比较字符串。

UTF-8 як 是十六进制 D18F D0BA。但是,如果双重编码,您将得到 C391 C28F C390 C2BA

SET NAMES utf8 应该有帮助;但这只是需要匹配的大约 5 件事之一。

node.js 需要类似的东西

var connection = mysql.createConnection({ ... , charset : 'utf8'});

(或 utf8mb4)

关于mysql - Node js中的非英文字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51368451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com