Chinaunix首页 | 论坛 | 博客
  • 博客访问: 568215
  • 博文数量: 155
  • 博客积分: 7055
  • 博客等级: 少将
  • 技术积分: 1700
  • 用 户 组: 普通用户
  • 注册时间: 2004-11-22 11:40
文章分类

全部博文(155)

文章存档

2016年(1)

2011年(2)

2010年(1)

2009年(2)

2008年(9)

2007年(39)

2006年(58)

2005年(38)

2004年(5)

我的朋友

分类: LINUX

2006-06-26 16:29:26

缘由
mysql-standard-5.0.20a-linux-i686-glibc23 + php-5.1.4 + phpMyAdmin-2.8.0.4 + httpd-2.0.58
mysql使用默认配置(latin1编码),关键是相关的global variables为默认的.

mysql> show variables like "character_set%";
+--------------------------+-----------------
| Variable_name            | Value          
+--------------------------+-----------------
| character_set_client     | latin1         
| character_set_connection | latin1         
| character_set_database   | latin1         
| character_set_filesystem | binary         
| character_set_results    | latin1         
| character_set_server     | latin1         
| character_set_system     | utf8           
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/

用phpMyAdmin管理mysql,插入数据库表里数据后,中文数据显示出来 是乱码.


方法是将libraries/database_interface.lib.php里的we auto-switch the lang to its UTF-8 version (if it exists)部分代码注释起来.

由此,需要了解编码.

在secureCRT v3.4.3上登陆2.6.9-5.ELsmp内核(安装时选择支持中文,默认语言是英文)的机器,
[root@一台机器 temp]# cat > tt
有人[ctl-D][ctl-D]
[root@一台机器 temp]# hexdump tt
0000000 d0d3 cbc8                             
0000004
[root@一台机器 temp]# bvi tt
00000000  D3 D0 C8 CB

系统是little-endian, bvi是做了转换再显示出来, hexdump是memory如何存储即如何显示.
这里"有"的编码是D3 D0 , "人"的编码是C8 CB
 

 

gb2312的编码是按汉字的拼音排序的.用bvi将tt第一汉字编码改为D3 D1, #cat tt
友人
"友"的编码是D3 D1

现在来做做编码的转换:
[root@一台机器 temp]# iconv -f gb2312 -t ISO8859-1 tt -o out
iconv: illegal input sequence at position 0 //转换不了

[root@一台机器 temp]# iconv -f gb2312 -t utf8 tt -o out
[root@一台机器 temp]# cat out
鍙嬩汉
[root@一台机器 temp]# hexdump out
0000000 8fe5 e48b baba                        
0000006
将out传到winxp下,用editplus v2.10c打开,即使选了编码方式,显示是一样乱码
但在记事本里,倒是正常识别了utf8编码.显示正常

utf8编码的情况就比较复杂,可以去上面的utf.com.cn里看看资料.一时半会弄不清楚.
mysql数据库store时,也是用utf8编码.一时探究不清.

阅读(1196) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~