MySql中SETNAMESutf8详解(乱码原理)_MySQL
不多说,先上图
分析:
set names utf8之前,
character_set_client | gbk
character_set_connection| gbk
character_set_results | gbk
set names utf8之后,
character_set_client | utf8
character_set_connection| utf8
character_set_results | utf8
关于字符集可参照mysql中文手册
地址:http://dev.mysql.com/doc/refman/5.1/zh/charset.html#charset-connection
以下是部分摘录:
在客户端和服务器的连接处理中也涉及了字符集和校对规则变量。每一个客户端有一个连接相关的字符集和校对规则变量。
考虑什么是一个“连接”:它是连接服务器时所作的事情。客户端发送SQL语句,例如查询,通过连接发送到服务器。服务器通过连接发送响应给客户端,例如结果集。对于客户端连接,这样会导致一些关于连接的字符集和校对规则的问题,这些问题均能够通过系统变量来解决:
· 当查询离开客户端后,在查询中使用哪种字符集?
服务器使用character_set_client变量作为客户端发送的查询中使用的字符集。
· 服务器接收到查询后应该转换为哪种字符集?
转换时,服务器使用character_set_connection和collation_connection系统变量。它将客户端发送的查询从character_set_client系统变量转换到character_set_connection(除非字符串文字具有象_latin1或_utf8的引介词)。collation_connection对比较文字字符串是重要的。对于列值的字符串比较,它不重要,因为列具有更高的校对规则优先级。
· 服务器发送结果集或返回错误信息到客户端之前应该转换为哪种字符集?
character_set_results变量指示服务器返回查询结果到客户端使用的字符集。包括结果数据,例如列值和结果元数据(如列名)。
你能够调整这些变量的设置,或可以依赖默认值(这样,你可以跳过本章)。
有两个语句影响连接字符集:
SET NAMES 'charset_name'
SET CHARACTERSETcharset_name
SET NAMES 'x'语句与这三个语句等价:
mysql>SETcharacter_set_client = x;
mysql>SETcharacter_set_results = x;
mysql>SETcharacter_set_connection = x;
所以说:
set names utf8指定了客户端和服务器之间传递字符的编码规则为UTF8。
修改MySql默认编码
MySql默认编码是Latin1,不支持中文,要想修改默认编码,需要修改my.ini文件
[client]增加default-character-set=utf8
[mysql]增加default-character-set=utf8
[mysqld]增加
character_set_server=utf8
init_connect='SET NAMES utf8'
cmd下操作mysql乱码需要注意cmd编码
查看当前代码页,如果当前代码页是GBK那么需要set names GBK才可以保证不乱码。
chcp 65001/936修改代码页。完美解决乱码问题。

ホット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)

ホットトピック











Linux の中国語の文字化け問題は、中国語の文字セットとエンコーディングを使用する場合によく見られる問題です。文字化けは、ファイルのエンコード設定が正しくない、システム ロケールがインストールまたは設定されていない、端末の表示設定エラーなどが原因で発生する可能性があります。この記事では、いくつかの一般的な回避策を紹介し、具体的なコード例を示します。 1. ファイルのエンコード設定を確認します。ファイルのエンコードを表示するには file コマンドを使用します。ターミナルで file コマンドを使用して、ファイルのエンコードを表示します: file-ifilename。出力に「charset」がある場合

Win11 システムをアップグレードした後、個人用ソフトウェアが文字化けしていることに多くのユーザーが気づきました。ここで、編集者が win11 の一部のソフトウェアで発生したコード化けの問題の分析をユーザーに丁寧に紹介しましょう。 win11 一部ソフトの文字化け解析 1. 左下隅のタスクバーの検索ボックスをクリックし、コントロールパネルと入力して開きます。 3. エリアをクリックします。 5. 次に、ウィンドウ内のベータ版の小さなボックスのチェックを外し、最後にコンピューターを再起動して問題を解決します。

タイトル: 中国語データを Oracle にインポートする際の文字化けの問題を解決する方法とコード例。中国語データを Oracle データベースにインポートすると、文字化けが頻繁に発生します。これは、データベースの文字セット設定が間違っているか、インポート中のエンコード変換の問題が原因である可能性があります。プロセス。 。この問題を解決するには、インポートされた中国語データが正しく表示されるようにするためのいくつかの方法を講じることができます。以下に、いくつかの解決策と具体的なコード例を示します。 1. データベースの文字セット設定を確認します。 Oracle データベースでは、文字セット設定は次のとおりです。

PHP で中国語のファイル名が文字化けする場合のヒント 開発プロセス中、特にユーザーがアップロードしたファイルを処理する場合に、中国語のファイル名が文字化けする問題によく遭遇します。 PHP では、文字化けしたファイル名を正しく処理する方法は一般的かつ重要な問題です。この記事では、中国語のファイル名が文字化けする場合に対処するいくつかのテクニックを紹介し、読者がこの課題にうまく対処できるように具体的なコード例を示します。問題の説明: ユーザーがファイルをアップロードすると、中国語のファイル名が文字化けして見えることがあります。これは、オペレーティング システムとブラウザが異なるためです。

nohup の役割と原理の分析 Unix および Unix 系オペレーティング システムでは、nohup はバックグラウンドでコマンドを実行するためによく使用されるコマンドです。ユーザーが現在のセッションを終了したり、ターミナル ウィンドウを閉じたりしても、コマンドはまだ実行され続けています。この記事では、nohup コマンドの機能と原理を詳しく分析します。 1. nohup の役割: バックグラウンドでのコマンドの実行: nohup コマンドを使用すると、ターミナル セッションを終了するユーザーの影響を受けることなく、長時間実行されるコマンドをバックグラウンドで実行し続けることができます。これは実行する必要があります

Win11はMicrosoftの最新OSですが、起動時に文字化けが発生し、システムの正常な使用に支障をきたす場合があり、この記事ではこの問題を解決する方法をいくつか紹介します。方法 1: 1. [Win+S] キーを押すか、タスクバーのスタート アイコンの横にある [検索アイコン] をクリックし、開いた Windows 検索で、検索ボックスに「コントロール パネル」と入力し、クリックします。 [開く]. コントロール パネル ウィンドウから最適なコントロール パネル アプリケーションを選択します; 2. コントロール パネル ウィンドウで [カテゴリ] ビュー モードに切り替え、[時計とゾーン - 地域] をクリックします; 3. ゾーン内で4. [ベータ版: Unicode を使用する] の [チェックを外す]

Linux ターミナルで文字化けが発生する場合の対処方法 Linux システムを使用していると、ターミナルに表示される文字が文字化けすることがあり、ターミナルを使用する際に不便を感じることがあり、早急に対処する必要があります。この記事では、Linux ターミナルでよくある文字化け問題の対処方法と具体的なコード例を紹介します。問題 1: 端末上の中国語の文字化け. 端末上の中国語の文字化けは、通常、端末の文字エンコード設定が正しくないことが原因で発生します。この問題は、端末の文字エンコード設定を変更することで解決できます。 #現在の端末を表示する

Struts フレームワークの原理分析と実践的な調査 JavaWeb 開発で一般的に使用される MVC フレームワークとして、Struts フレームワークは優れた設計パターンとスケーラビリティを備えており、エンタープライズ レベルのアプリケーション開発で広く使用されています。この記事では、Struts フレームワークの原理を分析し、読者がフレームワークをよりよく理解して適用できるように、実際のコード例を使用してそれを検討します。 1. Struts フレームワークの原理の分析 1. MVC アーキテクチャ Struts フレームワークは MVC (Model-View-Con) に基づいています。
