linux下文件编码格式转换方法(gb18030utf-8)

linux下文件编码格式转换方法(gb18030utf-8),第1张

linux下文件编码格式转换方法(gb18030/utf-8) 在 Linux 做开发或者系统管理遇到乱码是经常的事情,主要windows下中文的默认编码是bg2312,而 linux下是utf-8。很多时候 涉及到和windows平台系统的通信免不了编码的转化,可能大部分人都用iconv库函数(包含在glib中)和iconv命令来执行编码转换,即: iconv -f gb18030 -t utf-8 file1.txt -o file2.txt 说实话这个命令不好使,一方面容易重复转换,另一方面不支持通配符,无法成批转 换,文件少了还好说,要是一大堆文件岂不是要累死? 今天我要推荐的是另一个 Shell 下编码转换工具enca。用它不仅可以转换编码,还可以查看文件的原始编码,而且还支持成批转换。使用上也比iconv方便一些。安装enca很简单,一般用源安装就行了,enca用法如下: enca -L 当前语言 文件名 enca -L zh_CN file //检查文件的编码 enca -L 当前语言 -x 目标编码 文件名 enca -L zh_CN -x UTF-8 file //将文件编码转换为”UTF-8″编码 enca -L zh_CN -x UTF-8 <file1 >file2 //如果不想覆盖原文件可以这样 除了有检查文件编码的功能以外,”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来, 而”iconv”则会报错。这对于脚本编写是比较方便的事情。

在windows下编写好的shell脚本,在linux下执行时,有时候会报错找不到/r。

原因:Unix及类Unix系统里,每行结尾只有换行“\n”,Windows系统里面,每行结尾是换行+回车“\n\r”,编码格式不一样。

windows文件格式dos

linux文件格式unix

解决方法:修改文件的编码。

在linux上用vi打开文件

首先我们在终端窗口处输入mysql -u root -p 命令,然后输入root帐号密码连接数据库。具体 *** 作如下图所示。

连接上数据库后,执行命令show variables like 'character%'查看数据库的编码格式,可以看到数据库以及数据库服务端的默认编码都为:latin1编码。具体 *** 作如下图所示。

然后我们退出数据库,修改数据库的配置文件my.cnf文件,此文件如果通过rpm安装一般在/etc/目录下,具体修改成的样式如下图所示。

修改完成后,我们保存配置的修改,然后执行命令service mysqld restart。重新启动数据库。具体 *** 作如下图所示。

然后我们待数据库重启完成后,重新连接数据库,执行命令show variables like 'character%'查看更改后的编码格式。具体展示如下图所示,可以看到已经修改为utf8编码。

当然对于某个数据库的编码格式的查看,我们可以通过执行命令show create database+数据库名称具体展示如下图所示。

我们也可以通过执行命令修改数据库的编码格式,可以通过命令:alter database +数据库名称 default character set utf8 collate utf8_general_ci修改为utf8格式。具体 *** 作如下图所示。

修改完成后,我们再次执行命令 show create database +数据库名称,来查看确认是否更改成功。可以看到已经是utf8格式了。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存