[前][次][番号順一覧][スレッド一覧]

mysql:86

From: "民斗 " <"民斗 " <tommy@xxxxxxxxxx>>
Date: Mon, 16 Mar 1998 01:55:27 +0900
Subject: [mysql 86] Re: UJIS & SJIS


SJIS 対応のパッチをつくってみました。マルチバイト文字を汎用的に処理
できる仕組みを作って、それを使用して SJIS 対応しています。

ですので、名前は SJIS パッチではなくて MB(MultiByte)パッチです。
この一つのパッチで UJIS にも SJIS にも対応します。

http://www.valley.ne.jp/~tommy/mysql/patch/ にあります。
configure 時に --with-charset= で ujis または sjis を指定して
ください。

前の UJIS パッチの部分に加えて、オリジナルソース中にある BIG5 コード
対応部分を変更したものです。動きを良く理解せずに見よう見まねで変更した
ので、信頼性はちょっと怪しいかもしれません (^^;

…ということで、前の UJIS パッチもそのまま置いてあります。

-=-=-=-=-

[Subject: [mysql 85] Re: UJIS & SJIS]
[Date: Sat, 14 Mar 1998 20:47:04 +0900  From:takeshi@xxxxxxxxxx]

> サーバーに変換機能があれば、クライアントは触らなくて良いと思ったのですが、
> クライアントの漢字コードを自動で最初に判断するすべがありませんね。

そうなんですよね。ある程度文章が長ければかなりの確率で特定できるんですが…。

> 結局、引数か設定ファイルなどで、外部の漢字コードを指定するはめになるので、
> サーバー固定と等価でした。

サーバ側で対応するのであれば、1つのサーバが、接続するクライアント毎に
文字コードを判断するよりは、引数等でポート番号と文字コードを指定して、
UJIS と SJIS の2つサーバを起動して『SJIS 使いたい人(クライアント)は
こっちのポートにつないでね』とした方が良さそうですね。

で、SJIS の方は内部で UJIS に変換して、UJIS と同じデータベースを見ること
ができる。と。

> libmysqlclient.{a|so} を、漢字に対応させると後々いいと思います。
> MyODBC は libmysqlclient を使用していたはずですし。
> MS-Win 用に nkf.dll なるものもあるらしいです。(UNIX で libnkf ないかな?)
> M$ で開発できる方っています?

libmysqlclient 中のどれが関係するのか調べてませんが、libmysql.c 中の
mysql_escape_string() は上述の MB パッチで日本語対応するはずです。

> UNIX がわで、SJIS を MySQL が喋った場合の対応策が発生しますが。
> lib を変えて、コンパイルし直しはこの際いた仕方ないことでしょうか。

これは、クライアント側が SJIS → UJIS しているのに、サーバが実は SJIS を
喋っているという状況を考えているのでしょうか。

そこまで考えなくてもいいのではないでしょうか (^^; 
『運用する漢字コードには気をつけましょう』ということで…。

> 漢字コードと host の対応表みたいなのを、暫定的に見に行かせるようなのは
> やぼったいですかね?
> host,user,db とともにイニシャル時に読み込んで動作する、、。

サーバはそのテーブルの内容に応じて、動的に文字コードを変換するという
ことですよね。ん〜、やぼったいかどうかはともかく、実装するのは結構
大変かも…。

-=-=-=-=-

文字コードの変換の問題点を一つ思い出しました。文字でないバイナリデータの
扱いです。イメージ形式などをデータとして保存する場合、BLOB を使用すると
思いますが、そのデータ中にたまたま漢字コードに一致するものがあっても、
それまで変換されちゃ困りますよね。でも BLOB 中に文字を入れたい場合もある
でしょう。その場合は変換された方がいいですね。

現状では、項目の値を変換していいものか、いけないものなのかが、プログラム
では区別がつかないです。人間がそのデータをどう処理するのかに依存するので…。

オリジナルの "set optoin character set" はそこまで考えずに、全部変換して
いるようでしたが…。

--
民斗 <tommy@xxxxxxxxxx>

[前][次][番号順一覧][スレッド一覧]

->      86 1998-03-16 01:55 ["民斗 " <tommy@xxxxx] Re: UJIS &amp; SJIS                     
        87 1998-03-19 12:35 ┗[<takeshi@xxxxxxxxxx>]