mysql - 将 MySQL latin1_swedish_ci 转换为 utf8_unicode_ci 时丢失数据
问题描述
当我尝试将数据转换latin1_swedish_ci
为utf8_unicode_ci
我丢失数据时!TEXT 列在第一个特殊字符处被剪切。
然而,我尝试了很多方法来转换我的列,所有解决方案最终都会在第一个特殊字符处删除数据!
我通过 phpMyAdmin 或此 SQL 请求进行了尝试:
UPDATE `page` SET page_text = CONVERT(cast(CONVERT(page_text USING latin1) AS BINARY) USING utf8);
我还尝试了 php 脚本:
结果始终相同,数据在第一个特殊字符时丢失!
我应该怎么办?
更新
我可以将数据更改为 utf8
ALTER TABLE page CONVERT TO CHARACTER SET utf8mb4;
或者
ALTER TABLE page CONVERT TO CHARACTER SET utf8;
不会丢失数据,但不能正确显示特殊字符。
使用 php 函数utf8_encode($myvar);
确实可以正确显示特殊字符。
解决方案
推荐阅读
- xml - XSLT - XML 转换将值从一个传递到另一个以确定 XML 的顺序
- ios - 为什么当我将 UIButton 或 UILabel 拖放到 ViewController.swift 文件时总是输入 UIView
- ruby-on-rails - 命名空间类加载顺序的问题
- angular6 - 如何找到“非法文字映射”
- azure-active-directory - 是否可以通过 API 获取 Microsoft azure api 中 Azure AD Basic EDU 许可证的登录信息
- oracle - SYS_GUID() 函数能否在另一个数据库中生成相同的 guid
- javascript - NPM 包安装到公共目录(最佳实践)
- wordpress - 在 woocommerce 中的产品图片上添加用户数据
- javascript - 暂停 iframe src 中的所有视频
- javascript - 从 mapbox 导出高分辨率图像