mysql の my.ini のエンコーディングを utf-8 に設定しました
[client]port=3306default-character-set=utf8[mysql]default-character-set=utf8[mysqld]#绑定IPv4和3306端口bind-address = 127.0.0.1port = 3306default-character-set=utf8# 设置mysql的安装目录basedir=D:/MySQL/mysql-5.6.21-win32# 设置mysql数据库的数据的存放目录datadir=D:/MySQL/mysql-5.6.21-win32/data# 允许最大连接数max_connections=200
mysqlの文字セットを変更するだけでは解決しません。変更が完了したら、忘れずに mysql サービスを再起動してください。
mysql の文字セットを設定するにはコマンドを使用する必要があります。ローカル設定ファイルを変更するだけでは期待した効果が得られません。また、変更が完了したら必ず mysql サービスを再起動してください。
[mysqld] セクションに次の 2 つの文を追加して試してください
Collation-server = utf8_unicode_ci
init-connect=' SET NAMES utf8'
何もすることがないのに、なぜ my.ini のパラメータを変更するのでしょうか?
文字化けが発生する場所はどこですか?どうやって入れたんですか?
[mysqld] セクションに以下の 2 文を追加して試してください
Collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
mysql があります起動時にデフォルトはありません ファイルをロードします
my.ini を通じて mysql のデフォルトの動作を変更したい場合は、MySQL の起動時に
--defaults-file=my.ini を追加する必要があります
注: my.ini はフルパス
データベースはあなたのためのものではありません 1 人によって提供されているため、環境があなたに適応するのではなく、環境に適応する必要があります
mysql の起動時にデフォルトのロード ファイルはありません
必要に応じてmy.ini を通じて mysql のデフォルトの動作を変更するには、MySQL の起動時にそれを追加する必要があります
--defaults-file=my.ini に移動します
注: my.ini はフルパスです
データベースは機能しませんあなたはあなただけなので、環境があなたに適応するのではなく、環境に適応する必要があります
次の場合、なぜ my.ini のパラメータを変更する必要がありますか何もすることがないんですか?
文字化けが発生する場所はどこですか?どうやって入れたんですか?
mysql をどのように起動しましたか?
問題は、root にスーパー権限を取得させる方法です。スーパー権限がないと、読み取り専用しかできません
この権限は頭痛の種です~
root ユーザー、付与権限を検索してください
えー、なぜエンコーディングが行われるのでしょうか?問題がまた出てきましたか? 読み取り専用の問題です。 エンコーディングは一貫性の問題にすぎません。エンコーディングについては、mysql マニュアルを参照してください。
Server Db Client Conn と同様に、ステータスによって出力される Conn にはそれぞれエンコード設定があります。また、データベースとテーブルを構築するときに、別の接続で接続するときに、サーバーと対話するために別のエンコード設定を指定することもできます。
ステータス出力にも latin1 と gbk が表示される場合は、mysql プログラムがこの my.ini を読み込まなかったことを意味します
少なくとも私はそれを設定しました
[client]
port=3306
default-character-set=utf8
[ mysql]
default-character-set=utf8
その後、
client と conn の両方が utf8 になります
mysql.exe --help を実行すると、mysql.exe が設定ファイルを検索する順序を指定するプロンプトが表示されます。構成ファイルは正しい場所にありますか、またはその前に優先度の高いファイルが読み取られていますか?を参照してください。
上の階の学生の中には、サーバー構成を変更したことで私とあなたを批判した人もいましたが、あなたの root@localhost を見て、変更させる前に、自分のラップトップでテストと開発にローカル DB サーバーを使用すべきだったと思いました。データベースをオンラインで使用する場合は、安易に変更しないでください。変更する前によく考えてください。
時間があれば、マニュアルの対応する章をお読みください
https://dev.mysql.com/doc/refman/5.6/en/charset.html
今後、これに関連するすべての質問に別れを告げましょう。
我现在把数据库,表,字段都设置成utf8,项目编码也设置成utf8,还是会出现乱码.
我在mysql里执行插入中文字符语句时,不会出现乱码.将查询语句搬到项目里,插入的却是乱码.
用 mysql_client_encoding($con) 返回的是 latin1
我在连接是加上 mysql_set_charset( utf8, $conn ),返回的还是 latin1
show variables like 'char%';character_set_client utf8character_set_connection utf8character_set_database latin1character_set_filesystem binarycharacter_set_results utf8character_set_server latin1character_set_system utf8
[client]port=3306default-character-set=utf8[mysql]default-character-set=utf8[mysqld]#绑定IPv4和3306端口bind-address = 127.0.0.1port = 3306default-character-set=utf8
还是那话:数据库不是为你一个人服务的,所以应该是你去适应环境,而不是环境来适应你!
所以不要去改动 MySQL 的默认设置去适应你的要求
如果你一定要这样做(或是作为学习),应从安装 MySQL 开始
在 MySQL 的安装过程中有一个扩展选项,用来设置 MySQL 的默认字符集
安装完之后,你再去观察正确的字符集组合设置是怎样的
在使用 MySQL 时,是不能改变 MySQL 的默认设置的(因为你的改动可能会影响到几个、几十个甚至几百个人的工作)
你能改变的只是专属于你的库、表、字段的字符集设置,而且是一旦改了,就不要再动了。否则会直接影响到你自己在不同时期的工作
原则是:
含有中文的字段应设置为宽字符集(gbk、utf8、ucs-2...)任何一种都可以
在连接 MySQL 后执行 set name XXX 指令(XXX 为你程序文件所使用字符集),通知 MySQL 以何种字符集与你会话
还是那话:数据库不是为你一个人服务的,所以应该是你去适应环境,而不是环境来适应你!
所以不要去改动 MySQL 的默认设置去适应你的要求
如果你一定要这样做(或是作为学习),应从安装 MySQL 开始
在 MySQL 的安装过程中有一个扩展选项,用来设置 MySQL 的默认字符集
安装完之后,你再去观察正确的字符集组合设置是怎样的
在使用 MySQL 时,是不能改变 MySQL 的默认设置的(因为你的改动可能会影响到几个、几十个甚至几百个人的工作)
你能改变的只是专属于你的库、表、字段的字符集设置,而且是一旦改了,就不要再动了。否则会直接影响到你自己在不同时期的工作
原则是:
含有中文的字段应设置为宽字符集(gbk、utf8、ucs-2...)任何一种都可以
在连接 MySQL 后执行 set name XXX 指令(XXX 为你程序文件所使用字符集),通知 MySQL 以何种字符集与你会话
$conn = mysql_connect ( "localhost" , "root" , "" ) or die ( " Could not connect: " . mysql_error ()); $conn . mysql_select_db ( "hong" ); mysql_set_charset( "utf8" , $conn ); //我原本是这样设置编码的, 现在改成mysql_query("set names utf8");就不会出现乱码
mysql_query("set names utf8")
只是通知 MySQL 用什么字符集会话,与客户端默认字符集无关
请注意 names 是 name 的复数形式,表示将所有相关的属性都改成 utf8,而不是仅客户端
mysql_query("set names utf8");$sql = "select * from table";mysql_query($sql) or die(mysql_error());
PHP中文乱码分类及解决办法大全,我以前也遇到过,参考这个解决了
http://www.lai18.com/content/312385.html
连接数据库的时候添加
mysql_query("set names utf8")
检查项目编码,数据库,表,字段的编码是否都统一