

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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- C言語・C++・C# S-JIS → JIS コード変換するには 3 2023/02/09 23:55
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Windows 8 メモ帳による文字コード変換 2 2022/09/01 18:38
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- docomo(ドコモ) dアカウントの携帯電話番号が登録できない。ワンタイムコードがSMSに届かない。 2 2023/07/09 23:07
- Java VScodeのターミナルの文字化けについて 1 2022/09/27 22:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
InputMan の imTextについて
-
文字実体参照が勝手に変換され...
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
Excelについて質問です。 セル...
-
EXCELからCSVにすると余計なカ...
-
CString から LPCTSTRの型に変換
-
VBA 文字に半角が含まれて...
-
IEからEdgeへの移行に伴うIMEの...
-
文字コードの%E3%80%とは何です...
-
プログラミングの問題です。
-
SJIS->UTF8->SJISコード変換に...
-
CString Format にて全角空白文...
-
capeofdragonと申します Excel2...
-
perl でエラー:Wide character...
-
正規表現でテキストの中身を置...
-
VBA EXCEL あるセルの中の一...
-
全角英数字の必要性が理解できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
InputMan の imTextについて
-
文字実体参照が勝手に変換され...
-
チェックボックスの複数選択の...
-
もっとも初歩的なデータの渡し方を
-
常用漢字?でない文字を判定す...
-
機種依存文字の文字コード変換
-
色の指定
-
formデータのデコード「s///」...
-
半角と全角の文字数カウント方法
-
Perlの初歩
-
正規表現でカンマを対象にする方法
-
特殊文字をPOSTした際の動作は?
-
次ページ処理で途中つまりました
-
文字化けを回避したい
-
ダブルクォート文字などをフォ...
-
index関数と英語文字
-
nkfとjcodeの使い方の違いについて
-
SJISに関する少々複雑な問題
-
パターンマッチ変換について
-
戻り値の意味がわかりません…
おすすめ情報