在Linux如何让更改文件的字符编码

在Linux如何让更改文件的字符编码,第1张

1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式

:set

fileencoding=utf-8

2.

enconv

转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码, *** 作如下

enconv

-L

zh_CN

-x

UTF-8

filename

3.

iconv

转换,iconv的命令格式如下:

iconv

-f

encoding

-t

encoding

inputfile

比如将一个UTF-8

编码的文件转换成GBK编码

iconv

-f

GBK

-t

UTF-8

file1

-o

file2

查看文件编码file命令

file

ip.txt

ip.txt:

UTF-8

Unicode

text,

with

escape

sequences

一、利用iconv命令进行编码转换文件内容编码转换

iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。

用法:

iconv

[选项...]

[文件...]

有如下选项可用:

输入/输出格式规范:

-f,

--from-code=名称

原始文本编码

-t,

--to-code=名称

输出编码

信息:

-l,

--list

列举所有已知的字符集

输出控制:

-c

从输出中忽略无效的字符

-o,

--output=FILE

输出文件

-s,

--silent

关闭警告

--verbose

打印进度信息

-?,

--help

给出该系统求助列表

--usage

给出简要的用法信息

-V,

--version

打印程序版本号

例子:

iconv

-f

utf-8

-t

gb2312

aaa.txt

>bbb.txt

这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。

可直接进入 mysql 进行更改,具体如下:

1.查找/etc目录下是否有my.cnf文件;

#ls -l | grep my.cnf (在/etc下查找是否有my.cnf文件存在)

2.如果没有就要从/usr/share/mysql,拷贝一个到/etc 下,在/usr/share/mysql目录下有五个后缀为.cnf的文件,分别是 my-huge.cnfmy-innodb-heavy-4G.cnfmy-large.cnf my-medium.cnf my-small.cnf ;从中随便拷贝一个到/etc目录下并将其改为my.cnf文件,我选择的是my-medium.cnf :

#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

3.修改my.cnf文件,在该文件中的三个地方加上 default-character-set=utf8([client] [mysqld] [mysql])

#vi /etc/my.cnf

修改如下:(红色为添加部分)

[client]

#password = your_password

port= 3306

socket = /var/lib/mysql/mysql.sock

default-character-set=utf8

[mysqld]

port= 3306

socket = /var/lib/mysql/mysql.sock

skip-locking

key_buffer = 16M

max_allowed_packet = 1M

table_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

default-character-set=utf8

init_connect='SET NAMES utf8' //此行可不加

[mysql]

no-auto-rehash

default-character-set=utf8

保存退出;

4.重起MySQL服务器,使其设置的内容生效

#/etc/init.d/mysql restart

5. 重新登入mysql;

# mysql -u root - p

#(输入密码)

mysql>show variables like 'character_set%'

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

| Variable_name| Value |

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

| character_set_client | utf8 |

| character_set_connection | utf8 |(都生成了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/share/mysql/charsets/ |

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

mysql启动和停止 *** 作 :

可以通过 #/etc/init.d/mysql [start | stop | restart](实现启动,停止,重启)

也可以通过 #service mysql [start | stop | restart](实现启动,停止,重启)

*********************************

另外:如果在修改字符集前,尝试在数据库中插入中文,那么当修改了字符集后,在你所插入中文的数据库中(在别的数据库中可能没问题),

通过show variables like 'character_set%'查询的结果可如下:

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

| 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 | utf8 |

| character_set_system | utf8 |

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7377960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存