文字コードの確認と設定方法

文字コードが異なれば、同じ文字であっても異なる値が割り当てられます。例えば、全角の「あ」はシフトJISでは「0x82A0」ですが、UTF-8では「0xE38182」です。そのため、文字コードの指定に不備があると文字化けが発生します。

クライアントとサーバー

MySQLでは、クライアント文字コード、サーバー文字コードを別々に設定します。

文字コード指定単位 役割
クライアント文字コード クライアントがデータの送受信に使用する文字コード
サーバー文字コード 文字データを内部的に表現するための文字コード

クライアント側、サーバ側で異なる文字コードを指定している場合、MySQLの機能により文字コードの変換処理が行われます。

文字コードの確認

設定されている文字コードは、下記のSQL文で確認できます。

mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8mb4                    |
| 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)

クライアント文字コードの設定

クライアント文字コードをutf8にしたい場合、/etc/my.cnfに下記指定を行います。

[mysql]
default-character-set=utf8

SQLでも設定可能です。下記どちらかのSQLを実施します。

/* 指定方法1 */
SET NAMES utf8
 
/* 指定方法2 */
SET CHARACTER SET utf8

サーバ文字コードの設定

インスタンス データベース テーブル の4種類のレベルで文字コードを指定できます。

列の文字コードが指定されていなければ、テーブルの文字コード。
テーブルの文字コードが指定されていなければ、データベースの文字コード。
データベースの文字コードもしてされていなければ、インスタンスの文字コードが割り当てられます。

優先順位 レベル 設定方法
1 CREATE / ALTER TABLE文で指定
2 テーブル CREATE / ALTER TABLE文で指定
3 データベース CREATE / ALTER DATABASE文で指定
4 インスタンス 初期化パラメータdefault-character-set で指定
【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。