glossaryのimport/exportのencodingについて

glossaryのimport/exportのencodingについて

- Yoshikatsu Miyamoto の投稿
返信数: 4

はじめまして。宮本といいます。
さっそくなのですが,glossaryのimportやexportはxml形式なのですが,encodingはUTF-8になっていますが,exportしたときに日本語の部分が文字化けします。また,UTF-8でxmlを作成してimportするときも日本語の部分が文字化けをします。
 データベースはMySQLを使用して,encodingはujis(EUC-JP)に指定しています。また,php.iniの[mbstring]の設定は何もしてしていません。
 また,xmlファイルを「euc-jp」で作成して,importしてみました。そうすると,本文の部分だけが,文字化けしてしまいました。サイト全体のエンコードはEUC-JPになっているようですが,どこかの設定で,この問題は解決するのでしょうか。
 moodleは1.2を使用しています。

追伸:glossaryのdiscussionに投稿すべきなのでしょうが,英語に自身がないもので,すみません。

Yoshikatsu Miyamoto への返信

Re: glossaryのimport/exportのencodingについて

- Yoshikatsu Miyamoto の投稿

自己スレです:

glossaryモジュール内のimport.phpにutf8-decode関数を使用してる部分,例えば

addslashes(utf8_decode($xmlentry['#']['CONCEPT'][0]['#'])) を
addslashes($xmlentry['#']['CONCEPT'][0]['#']) ようにutf8-decode関数をはずしました。

XMLファイルのヘッダは<?xml version="1.0" encoding="euc-jp"?> のようにeucで作成してインポートしました。結果的には,うまく文字化けせずに,データベース内にeucで登録されました。

これは問題はないのかでしょうか。ちなみにexportは,まだ文字化けします。exportはutf-8決め打ちなのかな?

Yoshikatsu Miyamoto への返信

Re: glossaryのimport/exportのencodingについて

- Yoshikatsu Miyamoto の投稿

またまた自己スレです:

exportについて,glossaryディレクトリ内のlib.phpを以下のように変更しました。

$status = fwrite ($h,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); を
$status = fwrite ($h,"<?xml version=\"1.0\" encoding=\"EUC-JP\"?>\n"); に

function glossary_full_tag($tag,$level=0,$endline=true,$content,$to_utf=true) を
function glossary_full_tag($tag,$level=0,$endline=true,$content,$to_utf=false)  に

何か,邪道のような気がしていますし,全く自身がないですね。でもまあ,文字化けもなく,euc-jpでexport できました。

何かよい方法がありましたら,どなたかご教授お願いいたします。

Yoshikatsu Miyamoto への返信

Re: glossaryのimport/exportのencodingについて

- Timothy Takemoto の投稿

宮本先生

私も日本語のglossaryを使っていますが、Exportはまだしておらず、このバッグを事前に教えていただいてありがとうございます。

上述のことはやっはり英語のフォーラムにご投稿なさらないでしょうか?
WillはきっとCVSに入れてくれるでしょう。

あるいは私が代わりに投稿いたしましょうか?

武本Timothy