[PHP-users 24050] SJISで外字を扱う方法

Kazuhito Ujima ujiman @ dokidoki.ne.jp
2005年 1月 4日 (火) 02:02:38 JST


	氏間和仁(うじま かずひと)@松山盲学校です。
	2005/01/04 1:46:06に書きました。

現在、東洋医学の用語の辞書をwebアプリケーションで
作成したくて、win 2000,
 apache 2.0
php 5.0.2
MySQL 1.4
の環境で作業をしていますが、どうしても
SJISでコードF040以降の文字が飛んでしまいます。
ご意見をいただけると助かります。

httpd.confの設定は
AddDefaultCharset SJIS

php.iniの設定は
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = SJIS
mbstring.http_input = SJIS
mbstring.http_output = SJIS
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = auto

my.iniの設定は
[mysqld]
basedir=C:/soft_server/mysql_417_installer/mysql-4.1.7-win
default-character-set=sjis
datadir=C:/soft_server/mysql_417_installer/mysql-4.1.7-win/data

[WinMySQLadmin]
Server=C:/soft_server/mysql_417_installer/mysql-4.1.7-win/bin/mysqld-nt.exe
user=root
password=pass
user=root
password=pass
default-character-set=sjis

[mysql]
no-auto-rehash 
default-character-set=sjis

[mysql-dump]
default-character-set=sjis

です。

いままでで、試したこととしては、

<form action="<?=$_SERVER["PHP_SELF"]?>" method="POST" name="F1">
<input type="text" name="str" value="<? echo $str; ?>" onChange="document.F1.str2.value = document.F1.str.value;">
<input type="text" name="str2">
<input type="submit" value="追加">
</form>
<p>str:<? echo $str; ?>
のようなプログラムを動かすと
javascriptの部分は
strの内容はstr2に問題なく表示されました。外字ももちろんクリアです。

phpのpost送信で
このときにsubmitすると
外字の部分が欠落してしまいます。

おそらく、character codeのコンバートのあたりで
何か意図とはちがう所業が行われているものと
推察しますが、年末から取り組んで、解決策が
見出せずにいます。

Logをさらっても、外字のことはflashとの受け渡しや携帯の絵文字の
ことで散見できますが、いまだ解決には至っておりません。

それで、まとめますと
・MySQLとやり取りする前にphpの方でまずは手を打たないといけないが
その方法にたどり着かない。

・MySQLにshift jisコードのcsvファイルを直接win 2000上で
loadしたものをphpのプログラムで読み込んだときにも
文字が化けていることから,MySQLでも何かが起こっていそうな
気がするがこれもいまだ解決策にたどり着いていない。

といったあたりが、問題点だと思っています。
すみませんが、古典をあつかいますので、どうしてもSJISの外字領域の
文字が必要なので、わらをもすがる思いで投稿した次第です。
何か、ヒントをいただけると幸いです。

以下、署名
================
氏間 和仁
個人 ujiman @ dokidoki.ne.jp
職場 ujima-kazuh @ esnet.ed.jp
個人:http://www.dokidoki.ne.jp/home2/ujiman/
学校:http://matsuyama-sb.esnet.ed.jp
〒791−8016
愛媛県松山市久万ノ台112
愛媛県立松山盲学校
089−922−3655

Ehime prefectural school for the Blind
Address : Kumanodai 112 Matsuyama-shi Ehime 791-8016 JAPAN,
fax.+81-89-922-2893
================



PHP-users メーリングリストの案内