プロが教える店舗&オフィスのセキュリティ対策術

UTF-8で書かれているXMLファイルからPostgreSQLにデータをインサートするPHPのプログラムを作っています。

一点だけうまく行かないことがあり・・・XMLファイルに記載されている文字列にラテン語(?)が含まれています。
uの上にカンマみたいなやつや、eの上にドットが2つとかあるやつです。

PostgreSQLの文字コードがEUC_JPなので、文字化けしてしまいます。
なので、ラテン語は全て通常のローマ字に変換して登録しようとしていますが、うまく行きません。


流れ的には、
(1)UTF-8で記載されたXMLファイルをfopen
(2)ラテン語があれば通常のローマ字に変換する
(3)DBにインサートする

といった流れです。

宜しくお願い致します。

A 回答 (2件)

http://www.trickpalace.net/data/charcode/jisx021 …

この辺を参考に、置換する処理を作ってみたらいかがでしょう。
ローマ字にするよりは、実体参照にしてあげる方が奇麗な気がします。
    • good
    • 0

プログラムのことは分かりません。

ラテン語の学習経験のある者です。

>uの上にカンマみたいなやつや、eの上にドットが2つとかあるやつです。

ラテン語には上記の文字は使用しません。問題の言語はラテン語ではありません。まずは何語であるか調べるところから始めないと「通常のローマ字に変換する」ことも難しくなります。チェコ語かな?という気もするのですがご質問の文章だけではなんともいえません。

たとえばドイツ語で用いられる「アルファベットのaの上にドット2つの文字(aウムラウト)」を「符号なしのローマ字」に変換する場合は単純にドットを取り除けばよいのではなく、[aウムラウト]は「ae」に置き換える、という約束事があります。

このような約束事は各言語ごとに個別に決められています。それを無視した結果、データベースの価値を著しく損なうことも考えられます。

まずファイルに使用されている言語が何語なのか調べ、符号付文字が利用できない環境での翻字の方法について情報を集めることをお勧めします。

学問・教育>外国語のカテで質問されれば答えが見つかるかもしれません。

もちろんNo.1の回答者様のおっしゃるとおり実体参照できれば問題はないわけですが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!