mysql日本語処理完全解説 -...
TRANSCRIPT
11
MySQLMySQL日本語処理完全解説日本語処理完全解説
住商情報システム株式会社住商情報システム株式会社プラットフォームソリューション事業部門プラットフォームソリューション事業部門
ITIT基盤ソリューション事業部基盤ソリューション事業部
オープンソースシステム部オープンソースシステム部玉川玉川 修一修一
22
今日の内容今日の内容
MySQLMySQL概要概要
日本語処理対策日本語処理対策
––問題点問題点
––原因原因
––解決策解決策
33
MySQLMySQL概要概要
44
MySQLMySQLととはは-- オープンソースのデータベースオープンソースのデータベース
スウェーデン発スウェーデン発
オープンソースのオープンソースのRDBMSRDBMS 11日あたりの平均ダウンロード数日あたりの平均ダウンロード数55万万
全世界で全世界で10100000万万インストレーションインストレーション((20062006年年44月現在月現在))
普及度は世界普及度は世界No.1No.1ののOSS RDBMSOSS RDBMS
55
MySQLMySQLバージョンバージョン-- 4.04.0以下と以下と4.14.1以上では日本語の取り扱いが異なる以上では日本語の取り扱いが異なる
5.1(beta)5.1(beta) 5.0(GA)5.0(GA) 4.1(GA)4.1(GA) 4.0(old)4.0(old) 3.23(old)3.23(old)
※※GA:GA: Generally AvailableGenerally Available
66
日本語処理の留意点日本語処理の留意点-- いろいろありますいろいろあります
1.1. 文字化け対策基礎文字化け対策基礎
2.2. クライアントライブラリクライアントライブラリ
3.3. ((株株))問題問題
4.4. UnicodeUnicode変換変換ルール問題ルール問題
5.5. ラウンドトリップラウンドトリップ変換問題変換問題
6.6. JavaJavaのキャラクターセットのキャラクターセット
7.7. 日本語日本語メタデータメタデータ
8.8. 日本語日本語全文検索全文検索
77
1.1.文字化け対策基礎文字化け対策基礎
88
FAQFAQ 特に特に ver.4.1ver.4.1のリリース以降のリリース以降
他のマルチバイトユーザーも経験他のマルチバイトユーザーも経験
““MySQLMySQLで文字化けしてしまいます!で文字化けしてしまいます!””
99
文字化けの例文字化けの例-- 4.14.1ををインストールはしてみたもののインストールはしてみたものの……
mysql> CREATE TABLE t1(a CHAR(1))mysql> CREATE TABLE t1(a CHAR(1))> DEFAULT CHARACTER SET = sjis;> DEFAULT CHARACTER SET = sjis;
Query OK, 0 rows affected (0.09 sec)Query OK, 0 rows affected (0.09 sec)
mysql> INSERT INTO t1 VALUES('mysql> INSERT INTO t1 VALUES('ああ');');Query OK, 1 row affected, 1 warning (0.05 sec)Query OK, 1 row affected, 1 warning (0.05 sec)
mysql> SELECT * FROM t1;mysql> SELECT * FROM t1;++------------++| a || a |++------------++| ? || ? |++------------++1 row in set (0.00 sec)1 row in set (0.00 sec)
?
1010
MySQLMySQLで日本語使えるで日本語使える??-- はい、ちゃんと使えます。はい、ちゃんと使えます。
ほとんどの場合が「キャラクターセット」のほとんどの場合が「キャラクターセット」の設定ミスが原因設定ミスが原因
正しい設定を行えば、簡単に解決できる正しい設定を行えば、簡単に解決できる場合が多数場合が多数
1111
問題を理解する為に問題を理解する為に-- まずは基礎から解説まずは基礎から解説
キャラクターセットとは?キャラクターセットとは?
主なキャラクターセット主なキャラクターセット
MySQLMySQL 4.04.0以下以下 とと MySQL 4.1MySQL 4.1以上以上のの
違い違い
1212
MySQLMySQLのキャラクターセットとは?のキャラクターセットとは?
-- 文字集合文字集合 + + 文字エンコーディング文字エンコーディング
文字集合文字集合––どんな文字が使えるかどんな文字が使えるか
文字エンコーディング文字エンコーディング––どうやって文字を表現するかというルールどうやって文字を表現するかというルール
sjis sjis エンコーディングで「あ」という文字はエンコーディングで「あ」という文字は 「「0x82A00x82A0」と表現」と表現
ujis ujis エンコーディングで「あ」という文字はエンコーディングで「あ」という文字は 「「0x0xA4AA4A22」と表現」と表現
MySQLMySQLのキャラクターセットのキャラクターセット––文字集合と文字エンコーディングの組み合わせ文字集合と文字エンコーディングの組み合わせ
文字コード文字コード––あるキャラクターセットにおける文字の値あるキャラクターセットにおける文字の値
sjissjisキャラクターセットで、「あ」の文字コードは「キャラクターセットで、「あ」の文字コードは「0x82A00x82A0」」
1313
現在使える現在使える主なキャラクターセット主なキャラクターセット-- 日本語が使えるのは日本語が使えるのは66種類種類
ujisujisの文字集合に加え、の文字集合に加え、 NECNEC特殊文字等の外字が使用可能特殊文字等の外字が使用可能
文字コード体系は文字コード体系はujisujisとほぼ同等とほぼ同等eucjpmseucjpms
MySQLMySQLのデフォルトキャラクターセットのデフォルトキャラクターセット
ASCIIASCII文字、アクセント付アルファベットのみ使用可能文字、アクセント付アルファベットのみ使用可能latin1latin1
各国言語が使用可能な国際文字集合各国言語が使用可能な国際文字集合
Ver. 4.1Ver. 4.1以降で使用可能以降で使用可能ucs2ucs2
各国言語が使用可能な国際文字集合各国言語が使用可能な国際文字集合
Ver. 4.1Ver. 4.1以降で使用可能以降で使用可能utf8utf8
sjissjisの文字集合に加え、の文字集合に加え、NECNEC特殊文字等の外字が使用可能特殊文字等の外字が使用可能
文字コード体系は文字コード体系はsjissjisとほぼ同等とほぼ同等cp932cp932
主に主にUnix/LinuxUnix/Linux向け向け
sjissjisの文字集合に加えて、補助漢字等が使用可能の文字集合に加えて、補助漢字等が使用可能ujisujis
主に主にWindowsWindows向け向け
ASCIIASCII文字、ひらがな、カタカナ、文字、ひらがな、カタカナ、JISJIS第一、第二水準第一、第二水準
漢字等が使用可能漢字等が使用可能
sjissjis
1414
MySQL 4.0MySQL 4.0以下の以下の処理処理-- 文字コードの変換はなし文字コードの変換はなし
クライアントクライアント ⇒⇒ サーバーサーバー––文字コードをそのまま格納文字コードをそのまま格納
サーバーサーバー ⇒⇒ クライアントクライアント––文字コードをそのまま表示文字コードをそのまま表示
クライアント サーバー
あ(0x82A0)
あ(0x82A0)
1515
MySQL 4.0MySQL 4.0以下の以下の処理処理-- latin1latin1でも日本語でも日本語OKOK
キャラクターセットにかかわらず、文字キャラクターセットにかかわらず、文字コードをそのまま送受信コードをそのまま送受信
キャラクターセットがデフォルトのキャラクターセットがデフォルトのlatin1latin1でも日本語の利用は(見かけ上でも日本語の利用は(見かけ上**)可能)可能
だっただった
キャラクターセットキャラクターセットを変換する機能はないを変換する機能はない
**文字列長の認識や、ソート順序に影響有り文字列長の認識や、ソート順序に影響有り
1616
MySQL 4.MySQL 4.11以上の以上の処理処理-- 機能が強化され高度になりました機能が強化され高度になりました
テーブル(カラム)キャラクターセットのテーブル(カラム)キャラクターセットの概念概念
文字コード変換機能文字コード変換機能 + + UnicodeUnicodeサポートサポート
文字コードの自動変換機能文字コードの自動変換機能
キャラクターセット変数の追加キャラクターセット変数の追加
1717
MySQL 4.1MySQL 4.1以上以上の処理の処理-- テーブルキャラクターセットが指定できますテーブルキャラクターセットが指定できます
CREATE TABLE `table1` (CREATE TABLE `table1` (`column1` char(8) default NULL`column1` char(8) default NULL
) ENGINE=) ENGINE=MyISAMMyISAMDEFAULT CHARSET=sjisDEFAULT CHARSET=sjis
1818
MySQL 4.1MySQL 4.1の処理の処理-- UnicodeUnicodeを介して変換できますを介して変換できます
sjis
ujis
latin1
Unicode(ucs2)
sjis
ujis
utf8utf8
latin1
… …
1919
MySQL 4.1MySQL 4.1のの処理処理-- 自動変換が行われます自動変換が行われます
クライアント サーバー
sjis
あ(0x82A0)
ujis
あ(0xA4A2)
自動変換
2020
MySQL 4.1MySQL 4.1の処理の処理-- 変数が増えました変数が増えました
CREATE TABLE CREATE TABLE のデフォルトキャラクタセットのデフォルトキャラクタセットcharacter_set_databasecharacter_set_database
サーバーサーバーCREATE DATABASE CREATE DATABASE のデフォルトのデフォルト
キャラクタセットキャラクタセット
character_set_servercharacter_set_server
返された結果を表示するキャラクタセット返された結果を表示するキャラクタセットcharacter_set_resultscharacter_set_results
テーブルアクセスのないサーバ処理のテーブルアクセスのないサーバ処理の
キャラクタセットキャラクタセット
character_set_connectioncharacter_set_connection
クライアントクライアントクライアントから入力された文字のクライアントから入力された文字のキャラクタセットキャラクタセット
character_set_clientcharacter_set_client
クライアントプログラム起動時の--default-character-set
オプションが影響
mysqld起動時の--default-character-set
オプションが影響
2121
文字化け発生のメカニズム文字化け発生のメカニズム-- こんなイメージですこんなイメージです((4.1 <4.1 <))
クライアント(Windowsマシン)
サーバー
「あ」をInsert (0x82A0)
サーバー
default character set = sjis
クライアントキャラクタセット変数character_set_client = latin1character_set_connection = latin1character_set_result = latin1
入力された文は’0x82’と’0xA0’の
2文字だな
送られてきた文字はlatin1の’0x82’と’0xA0’か…。テーブルがsjis
なので、sjisに変換だ!
今から送る文字はlatin1の’0x82’と’0xA0’
だぞ!
文字化け発生
あ -> ??
2222
文字化け発生の条件(文字化け発生の条件(4.1 <4.1 <))-- ポイントは変換と文字集合ポイントは変換と文字集合
文字コードの変換が発生文字コードの変換が発生
UnicodeUnicodeととのマッピングが定義されていないのマッピングが定義されていない
––文字集合の範囲外文字集合の範囲外の文字を使用の文字を使用
––変換元と変換先の文字集合の違い変換元と変換先の文字集合の違い
2323
対策対策((4.1 <4.1 <))
-- ポイントはポイントは変換の回避変換の回避
文字コードの変換を回避文字コードの変換を回避
––クライアントクライアント//サーバー間でキャラクターセットサーバー間でキャラクターセット
を統一を統一
変換元キャラクターセットと変換先キャラ変換元キャラクターセットと変換先キャラクターセットの互換性を理解して使用クターセットの互換性を理解して使用
2424
対策対策((設定例設定例))-- この様に設定すればこの様に設定すればOKOK
mysqlmysqlクライアントを使う限りではクライアントを使う限りではmy.cnfmy.cnfファイルで設定可能ファイルで設定可能
[mysql[mysqldd]]defaultdefault--charactercharacter--set = sjisset = sjis
[mysql][mysql]defaultdefault--charactercharacter--set = sjisset = sjis
2525
2.2.クライアントライブラリクライアントライブラリ
2626
問題はクライアントライブラリ問題はクライアントライブラリ-- キャラクターセットは常にキャラクターセットは常にlatin1latin1
my.cnfmy.cnfでは設定済みでは設定済み
mysqlmysqlクライアントでは問題なしクライアントでは問題なし
PHPPHP等のプログラムでは文字化け等のプログラムでは文字化け
問題はバイナリ配布のクライアント問題はバイナリ配布のクライアントライブラリライブラリ
キャラクターセットはキャラクターセットはlatinlatin11でコンパイルでコンパイル
my.cnfmy.cnfファイルの設定ファイルの設定は影響しないは影響しない
2727
対策対策-- 方法は方法は33通り通り
ソースからコンパイルソースからコンパイル./configure ./configure ----withwith--charset=charset=character_set_namecharacter_set_name
接続直後に接続直後にSET NAMES SET NAMES character_set_namecharacter_set_nameの実行の実行
mysqldmysqld起動オプション起動オプション----skipskip--charactercharacter--setset--clientclient--handshakehandshake((MySQL 4.1.15, 5.0.13MySQL 4.1.15, 5.0.13~)~)
2828
対策対策-- この様に設定すればこの様に設定すればOKOK(例)(例)
my.cnf my.cnf ファイルファイル
[mysqld][mysqld]defaultdefault--charactercharacter--set = sjisset = sjisskipskip--charactercharacter--setset--clientclient--handshakehandshake
[mysql][mysql]defaultdefault--charactercharacter--set =sjisset =sjis
2929
3.(3.(株株))問題問題
3030
文字化けの例文字化けの例-- ㈱㈱が文字化け!が文字化け!
mysql> CREATE TABLE `table1` (`column1` char(8))mysql> CREATE TABLE `table1` (`column1` char(8))--> ENGINE=MyISAM> ENGINE=MyISAM--> DEFAULT CHARSET=utf8;> DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.12 sec)Query OK, 0 rows affected (0.12 sec)
mysql> insert into table1 values('mysql> insert into table1 values('㈱㈱');');Query OK, 1 row affected, 1 warning (0.00 sec)Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select * from table1;mysql> select * from table1;++------------------++| column1 || column1 |++------------------++| ? || ? |++------------------++
3131
「「((株株))」問題」問題-- 機種依存文字の文字化け機種依存文字の文字化け
WindowsWindows機種依存文字が化けする問題機種依存文字が化けする問題
––NECNEC特殊文字特殊文字
––IBMIBM拡張文字拡張文字
––NECNEC選定選定IBMIBM拡張文字拡張文字
WindowsWindowsのシフトのシフトJISJISととMySQLMySQLののsjissjisのの文字集合の違いが原因文字集合の違いが原因
3232
イメージ図イメージ図-- 変換マッピングルールがないのです変換マッピングルールがないのです
㈱
sjisの
文字集合
sjis ucs2 utf8
マッピングなし
マッピングあり マッピングあり
文字化け
?sjisではカバー
されない文字集合 ?
3333
““シフトシフトJISJIS””とと ““sjissjis””-- 実は違うんです実は違うんです
MySQLMySQLのの””sjissjis””ははIANAIANAのの””Shift_JISShift_JIS”” WinWinddowsowsのの””シフトシフトJISJIS””ははWindows Code Windows Code
Page 932Page 932(通称(通称cp932cp932))
IANAIANAではではWindows31Windows31--JJに相当に相当
cp932/Windows31cp932/Windows31--JJの文字集合をカの文字集合をカバーするキャラクターセットが必要バーするキャラクターセットが必要
※※解決策は後ほど解決策は後ほど……
3434
4.4.UnicodeUnicode変換変換ルールルール問題問題
3535
UnicodeUnicode変換変換ルールルール問題問題-- 変換ルールも異なる変換ルールも異なる””シフトシフトJISJIS””
この世には異なるシフトこの世には異なるシフトJISJISが存在が存在
それぞれ一部の文字についてそれぞれ一部の文字についてUnicodeUnicodeへの変換への変換ルールルールが異なるが異なる
変換が異なる文字変換が異なる文字の例の例
\~‖-¢£¬\~‖-¢£¬
3636
UnicodeUnicode変換変換ルールルール問題問題-- UnicodeUnicodeに変換すると違う文字に!に変換すると違う文字に!
0x8191¢(全角)
sjis
0x8191¢(全角)
その他
ucs20x00A2¢ (半角)
変換の結果全角が半角に!
0xFFE0¢(全角)
変換後も全角のまま
sjis
※※解決策は後ほど解決策は後ほど……
3737
5.5.ラウンドトリップ問題ラウンドトリップ問題
3838
ラウンドトリップ問題ラウンドトリップ問題-- ディレクトリパスがディレクトリパスが変変!?!?
3939
ラウンドトリップ問題ラウンドトリップ問題-- こんなイメージですこんなイメージです
0x005C¥
ucs2
sjis
0x5C¥
異なる複数の文字が一つの文字に変換
0x815F\
戻す時はどちらか選ばないといけない
結果として片方の文字が消えてしまう
sjis
0x5C¥
0x815F\
4040
解決策解決策-- cp932cp932でで33つまとめてつまとめて全て解決全て解決
新キャラクターセット新キャラクターセットcp932cp932を実装を実装
33つの問題すべて解決つの問題すべて解決
––㈱問題㈱問題
––UnicodeUnicode変換ルール問題変換ルール問題
––ラウンドトリップ問題ラウンドトリップ問題
ちなみにこれ、ちなみにこれ、SCSSCSがやりましたがやりました
4141
cp932cp932とはとは
sjissjisの拡張の拡張
WindowsWindows機種依存文字をカバー機種依存文字をカバー
––((株株))問題を解決問題を解決
WindowsWindows方式の方式のUnicodeUnicode変換変換
––UnicodeUnicode変換ルール問題を解決変換ルール問題を解決
––ラウンドトリップ問題を解決ラウンドトリップ問題を解決
4242
sjissjisととcp932cp932-- 文字集合が違います文字集合が違います
jisx0201
jisx0208
jisx0201
jisx0208
㈱Ⅰ①㍻℡
纊褜鍈
纊褜鍈
%&¥ abc 123アイウ
あいうアイウ亜井宇
sjis cp932
NEC特殊文字
IBM拡張文字
NEC選定IBM拡張文字
4343
0x8191¢
sjis
0x5C¥
ucs2cp932
sjissjisととcp932cp932-- 変換ルールも違います変換ルールも違います
0x815F\
0xFFE0¢
0x005C¥
0xFF3C\
4444
sjissjisととcp932cp932-- ユーザー定義領域もカバーユーザー定義領域もカバー
4545
eucjpmseucjpms-- ujisujisでで((株株))を使いたい場合にを使いたい場合に
ujisujisの拡張の拡張
cp932cp932互換互換
ujisujisででWindowsWindows機種依存文字を格納機種依存文字を格納するする場合に使用場合に使用
5.05.0以上で使用可能以上で使用可能
詳細は日本詳細は日本MySQLMySQLパートナ会の記事参照パートナ会の記事参照「「cp932 cp932 eucjpmseucjpms」で」でGoogle!Google!
4646
対処方法対処方法-- sjis/ujissjis/ujisよりもよりもcp932/eucjpmscp932/eucjpmsをを
my.cnf my.cnf ファイルファイル
[mysqld][mysqld]
defaultdefault--charactercharacter--set = cp932set = cp932
skipskip--charactercharacter--setset--clientclient--handshakehandshake
[[mysqlmysql]]
defaultdefault--charactercharacter--set = cp932set = cp932
※※cp932: 4.1,5.0cp932: 4.1,5.0
※※eucjpms: 5.0eucjpms: 5.0
4747
6.Java6.Javaの注意点の注意点
4848
JavaJavaととMySQLMySQLのキャラクターセットのキャラクターセット-- Connector/JConnector/Jでマッピングでマッピング
キャラクターセットの名称はキャラクターセットの名称はJavaJavaととMySQLMySQLで異なるで異なる
ConnectorConnector/J/Jでマッピングでマッピング
例)例)
((MySQLMySQL) cp932 = (Java) MS932) cp932 = (Java) MS932(MySQL) cp932 = (Java) Windows(MySQL) cp932 = (Java) Windows--31J31J
4949
cp932cp932使用時の問題点使用時の問題点-- ConnectorConnector/J/Jががcpcp932932に完全対応していなかったに完全対応していなかった
WindowsWindows--31J(MS932)31J(MS932)を使用してもを使用しても((株株))をを表示できない表示できない!!??
INSERTINSERTは出来るがは出来るがSELECTSELECTはエラーにはエラーに
JVMMySQL
Connector/J
cp932cp932MS932MS932cp932cp932WINDOWS31WINDOWS31--JJ
cp932cp932未定義未定義
cp932cp932未定義未定義
cp932cp932MS932MS932cp932cp932WINDOWS31WINDOWS31--JJ
5050
eucjpmseucjpms使用時の問題点使用時の問題点-- eucjpmseucjpmsととJavaJavaのキャラクターセットは非完全互換のキャラクターセットは非完全互換
eucjpmseucjpmsは互換性のないは互換性のないEUC_JPEUC_JPにに
マッピングマッピング
((株株))が文字化けが文字化け
JVMMySQL
Connector/J
eucjpmseucjpmsEUC_JPEUC_JP
eucjpmseucjpmsEUC_JPEUC_JP eucjpmseucjpmsEUC_JP_SolarisEUC_JP_Solaris
eucjpmseucjpmsEUC_JP_SolarisEUC_JP_Solaris
5151
EUC_JP_SolarisEUC_JP_Solaris-- better solution (better solution (≠≠best solution)best solution)
eucjpmseucjpmsと完全互換のわけではないと完全互換のわけではない
互換互換性のない文字性のない文字
―― ‖‖ -- ¢¢ ££ ¬¬ ¦¦
このようなこのような特殊記号のみ影響特殊記号のみ影響但し、但し、((株株))は使用可能は使用可能
実は実はここれもれもSCSSCSが実装しましたが実装しました
5252
対策対策-- JavaJavaでのまとめでのまとめ
cp932cp932にはにはWINDOWSWINDOWS--31J / MS93231J / MS932を使用を使用
eucjpmseucjpmsにはにはEUCEUC_JP_Solaris_JP_Solarisを使用を使用
––互換性のない文字について留意すること互換性のない文字について留意すること
ujisEUC_JP
eucjpmsEUC_JP_Solaris
sjisSJIS
utf8UTF-8
cp932MS932
cp932WINDOWS-31J
MySQL側キャラクターセットJava側キャラクターセット
(Connector/J ver. 3.1.9以上)
5353
7.7.日本語テーブル名問題日本語テーブル名問題
5454
日本語テーブル名問題日本語テーブル名問題
データベース名データベース名 = = ディレクトリ名ディレクトリ名
テーブル名テーブル名 = = ファイル名ファイル名
44.1.1以降、テーブル名、データベース名以降、テーブル名、データベース名等のメタデータは等のメタデータはutf8utf8で保存で保存
データベース名やテーブル名に日本語データベース名やテーブル名に日本語を使用した場合に問題あり(を使用した場合に問題あり(bug#3906bug#3906))
5555
日本語テーブル名問題日本語テーブル名問題
Utf8で保存された名前を
使用してファイルを作成し、シフトJISで表示している為
文字化けが発生
5656
日本語テーブル名問題日本語テーブル名問題
@+Unicodeコードポイントで表現
Ver. 5.1.6.にて修正
5757
対処方法対処方法-- 日本語メタデータの使用は控えましょう日本語メタデータの使用は控えましょう
55.1.1を使用するまでは、日本語メタデータを使用するまでは、日本語メタデータ
を使用しない方が安全を使用しない方が安全
5858
8.8.日本語全文検索日本語全文検索
5959
MySQLMySQLで日本語全文検索で日本語全文検索-- 機能はあるが分かち書きが必要機能はあるが分かち書きが必要
MyISAMMyISAMストレージエンジンでは全文検ストレージエンジンでは全文検
索用インデックスをサポート索用インデックスをサポート
但し日本語但し日本語のような言語には未対応のような言語には未対応
別途分かち書きを行ってやる必要有り別途分かち書きを行ってやる必要有り
6060
対処方法対処方法-- MySQLMySQL++SennaSenna**という選択肢という選択肢
組み込み型の全文検索エンジン組み込み型の全文検索エンジン
MySQLMySQLに組み込み可に組み込み可
SQLSQLのみで全文検索が可能にのみで全文検索が可能に
**未来検索ブラジルが開発した、オープンソースソフトウェア未来検索ブラジルが開発した、オープンソースソフトウェア
6161
MySQLMySQL++SennaSenna-- 詳細はこちらで詳細はこちらで
OpenOpen Source PavilionSource Pavilion––MySQL + MySQL + SennaSennaを紹介を紹介
ブースブース
––MySQL 5.0 + SennaMySQL 5.0 + Sennaのデモ。のデモ。
6262
まとめまとめ
6363
まとめまとめ-- MySQLMySQLでの日本語処理対策での日本語処理対策
MySQL + Sennaを使用日本語全文検索
5.1まで原則使用しない日本語メタデータ
1. cp932に対してMS932/Windows-31Jを使用2. Eucjpmsに対してEUC_JP_Solarisを使用
JAVA
ラウンドトリップ問題
Unicode変換ルール問題
キャラクターセットcp932の使用(株)問題
1. --skip-client-character-set-handshake2. SET NAMES キャラクターセット名
3. ./configure –with-charset=キャラクターセット名
クライアントライブラリ
キャラクターセットオプションの設定基本的な文字化け
対策対策課題課題
6464
MySQLMySQLならならSCSSCS
MySQLMySQLオフィシャルトレーニングオフィシャルトレーニング
MySQLMySQLライセンスライセンス
システム構築システム構築
––詳細は詳細は www.scs.co.jp/mysqlwww.scs.co.jp/mysql
ご清聴ありがとうございました。ご清聴ありがとうございました。
ご質問はご質問は [email protected]@scs.co.jp までまで