以下の内容はhttps://takuya-1st.hatenablog.jp/entry/20121010/1349860663より取得しました。


MySQLの文字コード

mysqlにターミナルからつないだ場合、クライアントの文字コードがうまく行かなくて化けることがある。基本的にUTF-8だと思っておいて

SQLシェルから

set names utf-8;

と打てば大抵うまく行く

使用可能な文字コード

show character set;

で見られる。

テーブルの文字コードを確認するには

mysql> show create table Recorder_Tbl;
| Recorder_programTbl | CREATE TABLE `Recorder_programTbl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `channel_disc` varchar(128) NOT NULL DEFAULT 'none',
  `channel_id` int(11) NOT NULL DEFAULT '0',
  `type` varchar(8) NOT NULL DEFAULT 'GR',
  `channel` varchar(10) NOT NULL DEFAULT '0',
  `title` varchar(512) NOT NULL DEFAULT 'none',
  `description` varchar(512) NOT NULL DEFAULT 'none',
  `category_id` int(11) NOT NULL DEFAULT '0',
  `starttime` datetime NOT NULL DEFAULT '1970-01-01 00:00:00',
  `endtime` datetime NOT NULL DEFAULT '1970-01-01 00:00:00',
  `program_disc` varchar(128) NOT NULL DEFAULT 'none',
  `autorec` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`),
  KEY `program_ch_idx` (`channel_disc`),
  KEY `program_st_idx` (`starttime`)
) ENGINE=MyISAM AUTO_INCREMENT=305647 DEFAULT CHARSET=utf8 |
+---------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)


などで見ればいいんじゃないかな。

ヤヤコシイのは次の場合

UTF8のテーブルにCP932突っ込んでる
ターミナルがCmd.exeでCP932前提。


SQLプロンプトで、こういう場合は。ちゃんと意識してシェルをかます。

#!/usr/bin/env
Open3.open{|in,out,err|
}

などを使って、文字コードを変換するパイプを作り、STDOUT/STDINをラップする。
プログラム側からはデコードの嵐。




以上の内容はhttps://takuya-1st.hatenablog.jp/entry/20121010/1349860663より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14