MYSQL數據庫亂碼轉碼問題

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 事情有些複雜,是這樣的:現狀:數據庫:mysql,默認編碼為latin1,建庫用的默認編碼,所以是:latin1_swedish_ci;site後臺為:ISO-8859-1;site前臺為:UTF-8;輸入:繁...

事情有些複雜,是這樣的:

現狀:

數據庫:mysql,默認編碼為latin1,建庫用的默認編碼,所以是:latin1_swedish_ci;

site後臺為:ISO-8859-1;

site前臺為:UTF-8;

輸入:繁體中文;

 

目標:

把數據庫,後臺,編碼統一改為UTF-8

 

解決辦法:

得到了http://www.suixie.com/jianzhan/2007-05-26/65.html的提示,用最老實的辦法:select tableName INTO OUTFILE , LOAD DATA INFILE 的辦法,把兩個有中文的table導出文件,轉碼後再導入;

 

步驟:

  1. 導出數據庫。將old數據庫將數據庫結構導出,我用PHPMYADMIN,先MYSQL40模式,這樣導出的結構沒有charset=latin1_swedish_ci,如果有 latin1_swedish_ci的話,將 latin1_swedish_ci改為utf-8 ;
  2. 根據上面導出的數據庫結構建庫new,記得是建成utf-8編碼的,(一般來說是utf8-general_ci);
  3. 在命令行登錄mysql,進入old數據庫,執行:

select * into outfile 'e://test//tb.txt' FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY """" LINES TERMINATED BY "/r/n" FROM 要導出的表名(沒有引號);

這就可以看到e:/test/下有一個tb.txt文件,是導出的表的數據;

 

4.轉碼。因為我導出來的數據就是我看得出的中文,所以我倒是省了這一步。不過這個應該是不怎麼好弄吧?我試過用phpmyadmin導出的.sql文件,找了好幾個轉碼器都轉不了 !-_-

如果是亂碼,可以用轉換工具,比如convertz802來轉碼,這一步好似也是挺考驗的,因為要轉出來的tb.txt文件是utf-8編碼,並且裡邊的中文字正常的。

 

5.把文件再導入e://test//tb.txt數據庫new。LOAD DATA INFILE 'e://test//tb.txt' INTO TABLE database.new FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY """" LINES TERMINATED BY "/r/n";

在這之前,有可能需要執行以下命令:

set names 'utf8';

set character_set_database='utf8'; // 通過show variables like 'character_set_%';查詢

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
存储 关系型数据库 分布式数据库
PolarDB产品使用问题之如何避免在修改数据库的编码格式时出现乱码状况
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
106 5
|
5月前
|
Oracle 关系型数据库 Linux
解决oracle数据库乱码
解决oracle数据库乱码
|
关系型数据库 MySQL
MySQL实战基础知识入门(5):命令行汉字中文输出乱码的解决方案
MySQL实战基础知识入门(5):命令行汉字中文输出乱码的解决方案
86 0
|
JSON 小程序 数据库
小程序批量导入excel数据,云开发数据库导出cvs乱码解决方案
小程序批量导入excel数据,云开发数据库导出cvs乱码解决方案
440 0
|
关系型数据库 MySQL API
Mysql 8.0 C API连接和获取数据实例(附解决乱码的彩蛋)
Mysql 8.0 C API连接和获取数据实例(附解决乱码的彩蛋)
Mysql 8.0 C API连接和获取数据实例(附解决乱码的彩蛋)
|
JSON 数据库 数据格式
mysql-connector-java json数据乱码
经测试版本最低也5.1.40以上,于是升级到了5.1.40.现在的最新版本是5.1.49,果然数据库的json数据查询正常了,如果com.mysql.jdbc.Driver报错,删除scope,查询时候要使用json函数:json_extract(json字段名,’$’);
mysql-connector-java json数据乱码
|
Java 关系型数据库 MySQL
数据库中存的内容乱码显示的是问号????的解决方案
数据库中存的内容乱码显示的是问号????的解决方案
数据库中存的内容乱码显示的是问号????的解决方案
|
关系型数据库 MySQL
Mysql输出中文显示乱码处理
Mysql输出中文显示乱码处理
439 0
Mysql输出中文显示乱码处理
|
SQL 关系型数据库 MySQL
MySQL - Navicat MySQL 乱码解决
MySQL - Navicat MySQL 乱码解决
145 0
MySQL - Navicat MySQL 乱码解决
|
关系型数据库 MySQL
最讨厌的乱码之 MySQL 乱码
乱码原因 解决方法 原因 总结
最讨厌的乱码之 MySQL 乱码