乱码 字符集 编码格式

文件编码格式

指的是代码保存的编码格式或者要读取文件的编码格式。

 

操作系统默认的编码格式

window 是GBK

Linux 是UTF-8

window 也是支持utf-8,只是需要特殊指定

 

编程语言的编码格式:比如说C++,java 语言,在我们需要将一个字节数组转成字符串时

 

这个编程语言会 以 当前操作系统的编码格式作为 默认的编码格式。

这就是我们在window 下编程通常需要指定UTF-8 的原因。

 

C++  byte数组转字符串时使用的就是操作系统编码GBK

而原数据是UTF-8 导致读取的数据乱码

 

当我们读取文件、数据发生乱码时,要先确认原数据的编码格式,

而数据传输IO流肯定是以字节(二进制数据)的形式,不会发生乱码,

关键看从字节数组转字符这个过程使用的编码是否正确。

 

总之,原数据是什么编码,读取要使用对应的编码。

其实严格来讲上面说的并不是什么转码,只是数据的还原。

 

真正的转码应该是 原始数据GBK编码,你给我转成UTF-8,完成这种功能需要自己根据2个

套编码表对照转换。使用inconv函数转换编码格式。

 

mysql 中文 乱码

1 设置ODBC数据源的字符集

在linux环境下,必须安装

unixODBC

MysqlOdbc

 

控制面板 驱动

odbc有两种驱动

unicode

ansi

 

驱动配置允许设置字符集

MYSQL Connector/ODBC 提供了两个版本 ANSI driver

Unicode driver

 

ansi API以A结尾

unicode API以W结尾

 

例如,SQLPrepareA和SQLPrepareW

 

libmyodbc8a  支持 ansi

libmyodbc8w  支持 unicode

 

 

unixODBC有两个配置文件:

odbc.ini

odbcinst.ini

可以通过odbc_config命令获取两个文件的地址。

 

在数据源配置文件odbc.ini中,在数据源配置的地方加一条如下语句

CHARSET = UTF8

 

2 设置数据库字符集

/etc/my.cnf

在**[client]**下加入代码:

default-character-set=UTF8

在**[mysqld]**下加入代码:character_set_server=utf8

在**[ mysql ]**下加入代码:

default-character-set=utf8

 

查看数据库字符集

show variables like ‘%character%’;

show variables like “%colla%”;

 

字符集乱码

iconv

系统编码

文件编码

终端编码

原理—配置文件

 

字符集设置

a 系统字符集

locale 

配置文件修改

 

b 文件字符集 

 file命令可以查看

 iconv可以转换

 

c 终端字符集 

终端工具设置

secureCrt

windTerm

 

cat乱码

文件的编码 不等于 系统的编码

vim乱码 

文件的编码 不等于 vim的编码

 

Linux iconv函数编写

注意参数顺序

 

iconv命令 转换文件的编码格式

iconv -l 查看支持的字符编码

file 文件名 

用于查看文件编码格式

utf8

gb2312 = iso8859

 

locale 查看编码格式

locale -a 查看所有支持的格式

 

字符集相关的配置文件

.bash_profile

.bashrc

可以设置LC_ALL LANG

 

配置文件:

i18n

locale.conf

可以设置LANG

 

vim编码格式 不等于 文件编码格式

.vimrc

设置fileencoding

 

 

 

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值