php - Sequelize 转换 UTF8 中的 DB 值,是吗?
问题描述
我一方面试图处理一个旧的 PHP 遗留网站,另一方面在 NodeJS / React 中处理一个新的单独部分。他们共享相同的数据,因此共享相同的数据库。
如果我使用 User 表,DDL 会显示该表具有 utf8 作为字符集,但某些字段除外,例如用户名:
CREATE TABLE `User` (
`id` int(11) NOT NULL AUTO_INCREMENT,
...
`name` varchar(20) CHARACTER SET latin1 NOT NULL,
...
) ENGINE=InnoDB AUTO_INCREMENT=69482 DEFAULT CHARSET=utf8
我真的不知道这个奇怪的配置背后的原因,除了可能与 JSON 事务的链接不接受重音字符并且我们的数据是法语的。但不确定...
Noé
无论如何,PHP 将数据存储在 UTF8 中,从而导致 mojibake : give Noé
. 但是以同样的方式返回,PHP 正确显示它。
现在,NodeJs 和 Sequelize 来获取数据。当我想要获取用户“Noé”时,Sequelize 会获取Noé
并 React 以相同的方式显示它“Noé”。
- PHP 和 NodeJs 之间的数据处理有什么区别?
- Sequelize 它是否检测到 latin1 中的 'name' 列字符集,并因此对其中的数据进行编码以在 UTF8 中“正确”显示?有办法强迫它不这样做吗?
我有点困惑,谢谢你的帮助:)
解决方案
推荐阅读
- docker - 带有 VPN 代理的 Docker 容器无法连接到同一 docker 网络中的其他容器
- terraform - Terraform模板文件模板中数值与两个变量的比较
- reactjs - redux坚持不在异步存储中存储存储
- sql-server - 在存储过程中以字符串形式输入 SQL 脚本
- android - 使用 Volley 时的 ANR 效果
- sql - 如何获得最大的日期记录并动态乘以该记录
- c# - System.net.http VS 2019源码提取
- c++11 - 为什么与整数的比较适用于 nullptr?
- c++ - 无序地图与地图
- java - Unable to put Class into a generic Map