- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我们有一个旧的 5.1 Mysql 服务器在服务器 2003 上运行。最近我们迁移到一个更新的环境,使用 Mysql 5.6 和服务器 2008。现在在新服务器上,我们在插入特殊字符(如 'Ã' 时不断出错。
现在我检查了源编码,是UTF-8。但是旧的 Mysql 服务器配置为 latin1(Server/tables/colonms),排序规则为 latin_swedish_ci,我们在旧环境中没有收到任何错误。
现在我已经做了一些测试,因为我们不在新环境中。我尝试将所有表设置为表/冒号以及 latin1。在这两种情况下,我都会不断收到这些错误。
我注意到,在旧服务器上,服务器默认字符集是 latin1,而在新服务器上,它是 utf-8。这可能是问题所在吗?我觉得这很奇怪,因为源是 utf-8。
是否有一些可以在旧环境中打开的选项来处理这个问题?我不确定是否存在类似的东西。我确实比较了 mysql 管理工具中的设置,除了默认的字符集外,它看起来是一样的。
编辑:
SHOW VARIABLES LIKE 'char%';
旧服务器:
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | utf8 | *
| character_set_connection | utf8 | *
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 | *
| character_set_server | latin1 |
| character_set_system | utf8 |
新服务器:
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | utf8mb4 | *
| character_set_connection | utf8mb4 | *
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 | *
| character_set_server | utf8 |
| character_set_system | utf8 |
据我从 MySQL 站点上的文章中了解到,utf8mb4 是 utf8 的超集,我认为这不应该对编码造成问题,因为它们在编码方面基本相同,对吧?
最佳答案
old UTF-8 of MySQL不是真正的 UTF-8。如果您尝试使用“特殊”字符(日文或中文),您可能会在旧服务器上看到方 block 或问号。
您的新服务器现在真正使用 UTF-8(mb4 代表多字节 4)。服务器接收 UTF-8 字符,但显然无法存储 UTF-8 字符,因为您的表未使用 UTF-8。将所有表转换为 UTF-8 并将数据库转换为 UTF-8,您将解决问题。
你可以这样做:
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
之前不要忘记备份。
关于c# - 不正确的字符串值 : '\xC2\x9Fe 10...' for column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31004996/
我目前正在使用 Cypress 测试几个微服务。为了测试 REST api,我需要一个 token 来发出请求。该 token 只能通过本地 FE 获得 - 下面给出的图像 我必须访问此 FE 才能仅
我用一些 FE 插件开发了 TYPO3 (6.2) 扩展。 我需要更改有关插件的信息,该信息显示在页面 View 的后端。 现在只显示插件的标题和名称... 我已经使用 flexforms 来配置插件
我刚得到一份 FE 开发人员的工作邀请,但我以前从未听说过这个术语。需要强大的 HTML、CSS、Javascript、jQuery、XSL 技能。 我认为自己精通所有这些领域,但 XSL 除外,我以
我用 C 编程,在那里我使用库 libpq-dev/libpq-fe 。通过这个库,我连接到本地 postgresql 数据库。 我写了一些测试代码,它选择/插入一些东西。但我一直有一个问题:我只能选
我这辈子都弄不明白。 当我 pip install django-tenant-schemas 时,它会尝试安装需要 Python header 和 gcc 的依赖项 psycopg2。我已经安装了所
我正在使用 C 中的 libpq-fe 库来连接到 postgres 数据库。 我正在使用返回时间戳的 libpqfe 从我的代码中调用存储过程。 我想将这个时间戳存储到一个 char 数组中。但要这
我面临以下问题:我正在尝试将 FIWARE-Perseo 作为 docker 实例部署到我的 Centos 7 服务器。尽管 perseocore 实例运行没有问题,但它与 perseo 前端的情况不
我创建了一个 2010 Access 数据库供我的团队使用。现在数据库位于服务器上的共享文件夹中,每个人都使用相同的数据库文件。我最近在数据库自动备份和创建额外文件(Database.mdb、Data
我在很多地方都看到过这个错误,但是没有人回答需要做什么来修复它或者为什么会发生。我希望我能有更好的运气。 ConsentInformation consentInformation = Consent
场景: 我正在尝试提出一种在 JS 中实现版本控制的方法,它满足两个前提: 缓存方面 很少(或理想情况下没有)调用后端 于是我想出了这个方案: 每次有新版本可用时,我都需要 FE 重新加载内容,因此实
在我的模型中的 TYPO3 6.2 中,我有一个名为 documents 的文件的公共(public)字段。 ,它是 ObjectStorage的 \TYPO3\CMS\Extbase\Domain\
我试图编译pgmodeler 0.7.2(https://github.com/pgmodeler/pgmodeler/releases)的源,但是我有问题: C:\Users\Krzysztof\D
我正在尝试在 postgres 上运行一个简单的查询,但无法获取 bigint 列的值。我尝试的所有操作都返回 0(零)或错误的值... 当我使用strtoll时,返回0(零) int64_t ret
我想在 windows 7 和 visual studio 2010 中编译一个 cpp 源文件 Microsoft (R) C/C++ 优化编译器版本 16.00.40219.01 for x64
我创建了一个系统,可以从车辆读取 CANBUS 数据并将其无线传输到“基站”。到目前为止,我的代码的工作原理是它通过数据线将东西发送到 xbee,然后 xbee 将它发送到接收模块,除了它发送的唯一东
如果我们想要进行社交认证(例如Facebook或Google),那么哪一方最好集成它。后端侧还是前端侧?对于后端,我们有NodeJS,其中我们可以使用PassportJS来完成它,对于前端,我们有An
我有两个域指向同一个网站,域 A 和域 B。我想要: 可通过 HTTP 访问域 A(开箱即用) 域 B 将所有请求重定向到 HTTPS。基本上如果你输入 http://domainb.com/some
因此,我有一个带有 SQL BE 的 Access 2007 FE。我正在使用绑定(bind)表单来添加新记录或更新现有记录。 我的问题是:与本地 Access 表不同,使用 SQL 表会导致自动编号
在搜索了很多答案并尝试了一些不同的方法都没有成功之后,我真的是出于绝望而发布了这个。 我有一个 Access 数据库,我最近将其中的表迁移到 SQL 2005,Access 继续作为提供表单、报告和查
我通常不在论坛上发帖,因为我总能在不打扰任何人的情况下找到一些东西。无论如何,这次我没有运气。 我为我的网站编写了一个 DB-Communications-System,您可以在其中通过 Java 应
我是一名优秀的程序员,十分优秀!