mysqlのコードが文字化けする
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
しかし、表示されるのは utf-8 ではありません
オンラインでいくつかの方法を試しましたが、解決できません。文字化けの問題、専門家のアドバイスをお願いします
ディスカッションへの返信(解決策)
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 はフルパスです
データベースは機能しませんあなたはあなただけなので、環境があなたに適応するのではなく、環境に適応する必要があります
defaults-file=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
我试着用 set name 'utf8';将character_set_database,character_set_server, character_set_filesystem改完后,下次又还原了
my.ini
[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_client_encoding() 返回当前连接的默认字符集名称,
没设置编码前返回 latin1 ,用了mysql_query("set names utf8")还是返回latin1 ;这是为什么?
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")
检查项目编码,数据库,表,字段的编码是否都统一

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
