

No.4ベストアンサー
- 回答日時:
Unicode::Japanese はご存知ですか?
”はしごだか”などの環境依存文字が混在する場合Jcodeでは変換できませんので、Unicode::Japaneseを使うと便利です。
http://search.cpan.org/~hio/Unicode-Japanese-0.40/
PurePerlとしても動作するので、サーバへのインストールも不要です。上記アドレスからDL・解凍後、lib内の Japanese.pm をコピーしてきて利用元のソースと同じパスに置く、あるいは任意のパスに置いてuse libするだけで利用可能です。
use Unicode::Japanese;
my $x = "変換元文字列";
my $s = Unicode::Japanese->new($x, "sjis");
open(FILE, ">./euc.txt");
print FILE $s->euc;
close(FILE);
こんな感じ。使い方はJcodeとほぼ同じです。
参考URL:http://search.cpan.org/~hio/Unicode-Japanese-0.40/
ご回答ありがとうございます。また、こちらからの返事が遅くなってしまい、申し訳ありませんでした。
Unicode::Japaneseですか。これは知りませんでした。まだ、見てもいないのですが、PurePerlということなら、手軽に利用できそうですね。少し試してみます。
ありがとうございました。
No.3
- 回答日時:
jocde.plではsjis→euc-jpへの変換はある計算式を対象のキャラクタの
コードに対して適用することで求めています。
#Encode.pmやJcode.pmは違います
このため、いわゆる機種依存文字の中でコード順で前のほうにあるもの、
たとえば丸付き数字やローマ数字などは問題なく変換されます。
しかしながら、はしごだかのようにコード順で最後のほうにあるもの
(IBM拡張漢字)に関しては、その計算式を適用したときに正しい値を
求めることができずに変換に失敗します。
#もっとも変換前に弾いちゃってますが
ということでその辺修正しない限りは jcode.plでの変換はできません。
で代替案。
NARUSE, Yui / Encode-EUCJPMS - search.cpan.org
http://search.cpan.org/~naruse/Encode-EUCJPMS/
このモジュールを使えば、IBM拡張漢字も問題なく変換できると思います。
が、使用しているサーバー環境等の問題でインストールすることができないのなら、
さらに別の手段を考える必要があります。
nkfを使うというのもひとつの手でしょうが、モジュールをインストールできない環境なら
外部プログラムでnkfが使えるようになっているかどうかちょっと疑問。
ご回答ありがとうございます。こちらのモジュールですが、単にパスの通ったディレクトリに置くだけで動作するタイプのものでしょうか?
それとも、きちんとインストールを行わないといけないタイプですか?もしもインストールが必要でしたら、少し難しいかもしれませんね。
とりあえず、モジュールの内容も見ていないので、NKFの方法と同じく、試してみます。
ありがとうございました。
No.1
- 回答日時:
具体的にどんな文字がダメなのかわかりますか?
use strict;
require 'jcode.pl';
print $jcode::version, "\n";
my $str = "(1)(10)嵜";
my $cvt = jcode::euc($str, 'sjis');
print $cvt, "\n";
my $cvt = jcode::convert(\$str, 'euc');
print $str, "\n";
こんなんで試してみましたが問題なく変換されているようです。
ひょっとしてデータベースの方で蹴っているということはないですか?
この回答への補足
ご回答、どうもありがとうございます。私が試そうとしているのは「髙」という文字です。いわゆる「はしごたか」というと思うんですが。
もちろん、この文字でエラーがでた、というだけで、他の機種依存にも対応できなければいけませんが。
#!/usr/bin/perl
use CGI;
require 'jcode.pl';
$query = new CGI;
$moji = $query->param('moji');
&jcode::convert(\$moji, 'euc', 'sjis');
print $query->header(-type => 'text/html; charset=EUC-JP');
print <<EOF;
<html>
<head>
<title>機種依存文字検索</title>
</head>
<body>
EOF
print "$moji<br>\n";
print <<EOF;
</body>
</html>
EOF
こんな感じで、簡単なテスト用のプログラムを作ってみました。たんに前のページで入力した機種依存文字をjcode.plで変換して表示するだけですが、うまく変換してくれません。ちなみに、この前のページはShift-JIS、このCGIはEUCとしています。
それと、DBでけっているのではないか、ということですが、サーバのエラーろづをみると、DBIでSQL文をprepareした段階でエラーになっているようなので、DBにも入っていないようです。
こんな回答で、何かわかりますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
常用漢字?でない文字を判定す...
-
エクセルで数値を全角文字(カ...
-
文字コードの%E3%80%とは何です...
-
COBOLでの全角文字の判定をした...
-
COBOL・全角判定
-
住宅にカナを入力する際に丁目...
-
フォントの色を保持したままセ...
-
エクセルでの”々”の扱い
-
AppleScriptファイルの読み書き...
-
CSVファイルの中で、「 , 」カ...
-
VBA 文字に半角が含まれて...
-
パワーポイントの一括置換:複...
-
エクセルにMicrosoft Barcode C...
-
空白を表示したい
-
CSVの定義
-
「一角」って何でしょうか
-
いまスマホからカードの申込み...
-
エクセルの区切り位置の設定方法
-
Excelについて質問です。 セル...
-
VBA Shift-JISをJISに変換する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
常用漢字?でない文字を判定す...
-
文字化けを元に戻せますか?
-
ダブルクォート文字などをフォ...
-
InputMan の imTextについて
-
チェックボックスの複数選択の...
-
文字実体参照が勝手に変換され...
-
SJISに関する少々複雑な問題
-
unicodeの表示
-
特殊文字をPOSTした際の動作は?
-
textareaでHTMLタグを使いたい
-
テキストエリアに半角「\\」ま...
-
パターンマッチ変換について
-
デコードフォームについて。
-
Perlのsprintfで使われるフォー...
-
半角カナから全角カナへ
-
正規表現でカンマを対象にする方法
-
色の指定
-
制御コード文字の受け取りと処理
-
何故、日本は未だに数字を3桁...
-
CSVファイルの中で、「 , 」カ...
おすすめ情報