当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 13 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-04 22:12 
头像

注册: 2008-05-13 22:34
帖子: 49
地址: 青岛
送出感谢: 0 次
接收感谢: 0 次
系统:9.10
PHPMYADMIN版本:3.2.3

1.已经修改过配置文件:在终端输入命令 sudo gedit /etc/mysql/my.cnf在打开的文件中
找到[client]在下面加入
default-character-set=utf8
找到 [mysqld_safe]在下面加入
default-character-set=utf8
找到[mysqld]在下面加入
default-character-set=utf8
init_connect='SET NAMES utf8'
找到[mysql]在下面加入
default-character-set=utf8

2.在MYSQL命令行下,执行了set names utf8;

3。检查mysql字符集
命令 一:show variables like 'character%'; 出现

代码:
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| 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/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


命令二:show variables like "collation_%"; 出现

代码:
mysql> show variables like "collation_%";
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)



4.在PHP的代码中添加了mysql_query("set names utf-8");



按照上面这些操作,貌似不会出现乱码了,现在的问题如下:

浏览器使用UTF-8, 编辑的PHP文件保存编码UTF-8,mysql中数据库和表 ,整理使用utf8_unicode_ci,
当从网页中输入数据时,在MYSQL中显示的是乱码,当从mysql中把这些乱码改过来后,mysql显示正常,但网页显示又是一串?????



哪位知道的朋友给指导下吧,不胜感激!!!


_________________
自己活的只比鬼火亮那么一点点,却假装太阳去照亮别人!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-05 20:09 
头像

注册: 2008-05-13 22:34
帖子: 49
地址: 青岛
送出感谢: 0 次
接收感谢: 0 次
怎么这么多人看了都没有回复的啊,哎。。。


_________________
自己活的只比鬼火亮那么一点点,却假装太阳去照亮别人!


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-07 11:15 

注册: 2006-09-29 5:11
帖子: 1005
送出感谢: 10
接收感谢: 4
.首先,确认一下你HTML的<meta>。
然后,建议在php中试验一下用iconv处理一下,找出来乱码是什么编码的,然后再根据这个线索去找原因。
BTW,顺便看了一下我的mysql配置(不记得自己改了几个了)
show variables like 'character%';
+--------------------------+----------------------------+
| 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 | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
show variables like "collation_%";
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+


_________________
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS

Firefox/Thunderbird 插件接活中。。。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-07 11:42 
头像

注册: 2008-05-13 22:34
帖子: 49
地址: 青岛
送出感谢: 0 次
接收感谢: 0 次
sanz 写道:
.首先,确认一下你HTML的<meta>。
然后,建议在php中试验一下用iconv处理一下,找出来乱码是什么编码的,然后再根据这个线索去找原因。
BTW,顺便看了一下我的mysql配置(不记得自己改了几个了)
show variables like 'character%';
+--------------------------+----------------------------+
| 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 | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
show variables like "collation_%";
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+


var_dump(iconv_get_encoding('all'));
代码:
array(3) { ["input_encoding"]=>  string(10) "ISO-8859-1" ["output_encoding"]=>  string(10) "ISO-8859-1" ["internal_encoding"]=>  string(10) "ISO-8859-1" }


难道是这个问题?我没有单独设置ISO-8859-1啊,望解答。。


_________________
自己活的只比鬼火亮那么一点点,却假装太阳去照亮别人!


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-07 11:50 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
也许是这里的问题,你删除指定的编码试试。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-07 12:23 
头像

注册: 2008-05-13 22:34
帖子: 49
地址: 青岛
送出感谢: 0 次
接收感谢: 0 次
oneleaf 写道:
也许是这里的问题,你删除指定的编码试试。

代码:
locate php.ini
/etc/php5/apache2/php.ini
/etc/php5/apache2/php.ini~
/etc/php5/cli/php.ini
/usr/share/doc/php5-common/examples/php.ini-dist
/usr/share/doc/php5-common/examples/php.ini-paranoid
/usr/share/doc/php5-common/examples/php.ini-recommended
/usr/share/php5/php.ini-dist
/usr/share/php5/php.ini-dist.cli


打开/etc/php5/apache2/php.ini找到含有ISO-8859-1的地方有三处
代码:
; Specify client character set.
; If empty or not set the client charset from freetds.comf is used
; This is only used when compiled with FreeTDS
;mssql.charset = "ISO-8859-1"


; PHP's built-in default is text/html
default_mimetype = "text/html"
;default_charset = "ISO-8859-1"

[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1


这些不是注释掉的么?


_________________
自己活的只比鬼火亮那么一点点,却假装太阳去照亮别人!


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-07 12:24 
头像

注册: 2008-05-13 22:34
帖子: 49
地址: 青岛
送出感谢: 0 次
接收感谢: 0 次
好像前面取到的ISO-8859-1不是在PHP.INI里面设置的?我不懂 请教下


_________________
自己活的只比鬼火亮那么一点点,却假装太阳去照亮别人!


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-07 12:32 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
检查你php程序的代码


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-07 12:40 
头像

注册: 2008-05-13 22:34
帖子: 49
地址: 青岛
送出感谢: 0 次
接收感谢: 0 次
oneleaf 写道:
检查你php程序的代码


现在

代码:
mysql> show variables like "collation_%";
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | utf8_general_ci   |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| 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     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


PHP代码:
代码:
<?php
   $DBHOST="127.0.0.1";
   $DBUSER="root";
   $DBPWD="root";
   $DBNAME="sample";
   mysql_connect($DBHOST,$DBUSER,$DBPWD);
   mysql_select_db($DBNAME);
   mysql_query("set name 'utf8'");
   $content=$_POST['content'];
   $sql="insert into test(content) ";
   $sql.="values('{$content}') ";
   mysql_query($sql);
   
?>
<html>
<head>
<meta http-equiv="content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form action="insert.php" method="POST">
<table>
   <tr>
      <td>输入内容</td><td> <input type=text name="content"></td><td><input type=submit value=submit></td>
   </tr>
</table>

</form>

</body>
</html>

<?php
var_dump(iconv_get_encoding('all'));                      #此处显示了ISO-8859-1
?>


三楼那位说是用LATIN1,我改了my.cnf配置,只有一个变成了latin1,phpmyadmin是单独下载压缩包安装的,整理用utf8_unicode_ci,现在的问题是不是MYSQL检测时出来的那几个还是UTF-8,我已经头大了 哈哈


_________________
自己活的只比鬼火亮那么一点点,却假装太阳去照亮别人!


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-07 12:46 
头像

注册: 2008-05-13 22:34
帖子: 49
地址: 青岛
送出感谢: 0 次
接收感谢: 0 次
实在不行,我把这个PHPMYADMIN卸载掉 从源里安装吧,各位告诉我 在MYSQL检测字符时 是用 全部的UTF-8还是latin1?


_________________
自己活的只比鬼火亮那么一点点,却假装太阳去照亮别人!


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-07 13:20 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
检查 table test 的字符集


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-12 12:52 

注册: 2008-06-12 13:27
帖子: 40
送出感谢: 0 次
接收感谢: 0 次
应用服务器连接mysql的驱动是否需要设置字符集?
如果是tomcat则需要设置和数据库一样的字符集。


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 没辙了,不得不再发一个MYSQL乱码的问题了
帖子发表于 : 2009-11-12 14:12 

注册: 2008-10-15 10:49
帖子: 583
地址: CS
送出感谢: 0 次
接收感谢: 0 次
oneleaf 写道:
检查 table test 的字符集

上次就是最后忘了改表的字符集,搞惨我了


_________________
代码:
 _____________
< 呜呜buntu >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 13 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译