Heim Datenbank MySQL-Tutorial [实践OK]如何把早期bo-blog里latin1的MYSQL编码转换为全utf8编码_MySQL

[实践OK]如何把早期bo-blog里latin1的MYSQL编码转换为全utf8编码_MySQL

Jun 01, 2016 pm 01:06 PM

背景:很久前用bo-blog时的编码是latin编码,但里面存的是utf8格式,出现啥问题?当时是放在虚拟域名机上没有ssh,每次备份出来都是乱码,找bob呢,说是得用帝国备份进行导出,会有自动编码识别功能,确实有这个功能,给我后呢,我通过帝国备份王导入自己的本机vmware机器上的mysql版本是Mysql 5.6.13正常,导入到外网vps机器上的mysql 5.6.19上不正常,显示乱码,于是否,我觉得是编码问题了,对照发现,果然不一样,高版本的mysql默认就全是utf8的:

一)内网vmware测试机上的编码情况(mysql 5.6.13):

mysql> show variables like "%char%";

+--------------------------+----------------------------------+

| Variable_name            | Value                     |

+--------------------------+----------------------------------+

| character_set_client     | latin1                    |

| character_set_connection | latin1                |

| character_set_database   | utf8                   |

| character_set_filesystem | binary                  |

| character_set_results    | latin1                    |

| character_set_server     | latin1                   |

| character_set_system     | latin1                  |

| character_sets_dir       | /usr/local/mysql/share/charsets/ |

+--------------------------+----------------------------------+

二)Vps的最新版本的mysql如下(mysql 5.6.19):

mysql> show variables like "%char%";

+--------------------------+----------------------------------+

| Variable_name            | Value                     |

+--------------------------+----------------------------------+

| character_set_client     | utf8                      |

| character_set_connection | utf8                  |

| character_set_database   | utf8                   |

| character_set_filesystem | binary                  |

| character_set_results    | utf8                      |

| character_set_server     | utf8                     |

| character_set_system     | utf8                    |

| character_sets_dir       | /usr/local/mysql/share/charsets/ |

+--------------------------+----------------------------------+

方案一:

目前,对导入正常显示正常的mysql 5.6.13作如下编码规范,操作如下:(-d 表示只导出表结构,不导出数据。 -t是只导出结构。)

1> 以latin1导出表结构和数据(也有分开导出,对latin1作替换其中表结构定义中的字符集为新的字符集utf8):

步骤如下:

(1)这儿一定要是latin1的,否则导出来的是乱码,加入mysqldump参数如下:

sed -i s/CHARSET=latin1/CHARSET=utf8/g `grep -rl "CHARSET=latin1" justwinitData22.sql `

(2)对第1步里export出来里面的表结构定义中的字符集由latin1替换为新的字符集utf8:

/usr/local/webserver/mysql/bin/mysqldump -uroot  --default-character-set=latin1  --no-create-info justwinit_mysql  > justwinitData22.sql

2>使用新的字符集创建新的数据库并导入(导入前得转成utf8格式,editplus或UltraEdit把justwinitData22.sql 另存为utf8格式):

create database justwinit_mysql  default charset utf8;

3>确保在vps高版本导入前的sql里加入一行:set names utf8。(我发现这一行直接在sql的terminal里写再source好像不行,以前好像行的,还得写到sql文本里。)

source /tmp/justwinit/justwinitData22.sql

mysql> source /tmp/justwinit/justwinitData22.sql

导入完毕,中文访问就不乱码了,也就Ok了。EOF

参考:

http://blog.chinaunix.net/uid-25266990-id-3344584.html

方案二:

当然,也可以直接select into,后再load 进去:

步骤一 将待导出的数据表的表结构导出(可以用Phpmyadmin、mysqldump等,很简单就不说了),然后将导出的create table语句的CHARSET=latin1改为CHARSET=utf8,在目标库newdbname中执行该create table语句把表结构建好,接下来开始导出-导入数据

步骤二 命令行:进入mysql命令行下,mysql -hlocalhost -uroot -p*** dbname

步骤三 执行SQL select * from tbname into outfile /usr/local/tbname.sql;

步骤四 将tbname.sql转码为utf-8格式,建议使用UltraEditor,可以直接使用该编辑器的转换->ASCII到UTF-8(Unicode编辑),或者将文件另存为UTF-8(无BOM)格式

步骤五 在mysql命令行下执行语句 set character_set_database=utf8;  注:设置mysql的环境变量,这样mysql在下一步读取sql文件时将以utf8的形式去解释该文件内容

步骤六 在mysql命令行下执行语句 load data infile tbname.sql into table newdbname.tbname;

摘自:http://www.bitsCN.com/database/201102/84121.html

相关中文乱码及文件编码转换成utf8的工具技巧介绍,附录:

(1)中文在linux上用vi和less查看乱码的设置:

在Linux上看utf8的文件,一个是SecureCRT高架,一个是vim的设置::set fileencoding=utf-8。

想用less命令查看的时候,就先执行这个命令,然后再用less查看:

export LESSCHARSET=latin1

这样用less查看的大部分都没问题了,但是存在某些行太长自动换行后乱码的情况。这是因为每个汉字由多个字节组成,在行尾被截断了,下一行都有问题,你需要手工调整一下客户端的宽度就可以了。

想用VI查看的时候,在打开文本之后的VI里进行如下设置:

:set encoding=utf-8 termencoding=latin1

注意那个encoding是要查看文本的编码格式,一般就是服务器默认编码。

摘自:http://www.myexception.cn/linux-unix/1662792.html

(2)linux下如何做编码转换成utf8的办法:

wget http://pkgs.repoforge.org/enca/enca-1.10-1.el6.rf.x86_64.rpm

enca -L zh_CN -x UTF-8 file   #将file转换成utf8的编码格式 也能转成utf8格式:enca-1.10-1.el6.rf.x86_64。

enca的用法:

enca -L zh_CN file    #查看file的编码格式

enca -L zh_CN -x UTF-8 file   #将file转换成utf8的编码格式

enca -L zh_CN -x UTF-8 file1 file2   #转换之后存成file2文件,不覆盖file1

不过用的时候发现有一部分文件无法传转,具体原因不祥,不过enca会把无法转换的文件告诉你的。对于这些不能转的文件,可以用gedit另存为的方式转,虽然这法笨点,但挺好使的。(上面我就是通过editplus别存为转的,UltraEdit也成。)

实践如下:

[root@jackxiang justwinit]# enca -L zh_CN  justwinitData22.sql

Universal transformation format 8 bits; UTF-8

  Surrounded by/intermixed with non-text data

[root@jackxiang justwinit]# enca -L zh_CN  justwinitData21.sql  

Universal transformation format 8 bits; UTF-8

enca实践内容来自:http://zhan.renren.com/itbegin?gid=3602888498000703772&checked=true

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Mar 19, 2025 pm 03:51 PM

In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Mar 18, 2025 pm 12:01 PM

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

Wie behandeln Sie große Datensätze in MySQL? Wie behandeln Sie große Datensätze in MySQL? Mar 21, 2025 pm 12:15 PM

In Artikel werden Strategien zum Umgang mit großen Datensätzen in MySQL erörtert, einschließlich Partitionierung, Sharding, Indexierung und Abfrageoptimierung.

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]

Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Mar 19, 2025 pm 03:52 PM

In dem Artikel werden in MySQL die Ablagerung von Tabellen mithilfe der Drop -Tabellenerklärung erörtert, wobei Vorsichtsmaßnahmen und Risiken betont werden. Es wird hervorgehoben, dass die Aktion ohne Backups, die Detaillierung von Wiederherstellungsmethoden und potenzielle Produktionsumfeldgefahren irreversibel ist.

Wie repräsentieren Sie Beziehungen mit fremden Schlüsseln? Wie repräsentieren Sie Beziehungen mit fremden Schlüsseln? Mar 19, 2025 pm 03:48 PM

In Artikeln werden ausländische Schlüssel zur Darstellung von Beziehungen in Datenbanken erörtert, die sich auf Best Practices, Datenintegrität und gemeinsame Fallstricke konzentrieren.

Wie erstellen Sie Indizes für JSON -Spalten? Wie erstellen Sie Indizes für JSON -Spalten? Mar 21, 2025 pm 12:13 PM

In dem Artikel werden in verschiedenen Datenbanken wie PostgreSQL, MySQL und MongoDB Indizes für JSON -Spalten in verschiedenen Datenbanken erstellt, um die Abfrageleistung zu verbessern. Es erläutert die Syntax und die Vorteile der Indizierung spezifischer JSON -Pfade und listet unterstützte Datenbanksysteme auf.

Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)? Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)? Mar 18, 2025 pm 12:00 PM

Artikel erläutert die Sicherung von MySQL gegen SQL-Injektions- und Brute-Force-Angriffe unter Verwendung vorbereiteter Aussagen, Eingabevalidierung und starken Kennwortrichtlinien (159 Zeichen).

See all articles