海外でも日本のようにコードがいくつか存在する言語ではjcode.plのようなコード変換plが存在する、そして必要となるのでしょうか?もしあるなら事例を教えてください。よろしくお願いします。(キリル言語はcyrcode.plというのがあるようですが・・・)

このQ&Aに関連する最新のQ&A

A 回答 (1件)

http://www.kawa.net/works/perl/romanize/romanize …

jcode.pl
と同じ感じではないですが、モジュール化されているものなら存在します。
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

QJcodeモジュールの代わりにjcode.plで代用可能でしょうか?

こんばんわ。前回質問したときに、
回答をしていただいた方、ありがとうございました。

原因は、結局のところ、サーバー会社の自分の使っているサーバーに
ImageMagickがインストール?されていなかったみたいでした。
使えないのですが、(使用では使えることになっていた。)
と、連絡したところ、無事使えるようになりました。
ありがとうございました。

ですが、実際、ImageMagickを使ってみて、
その機能の一部である、文字合成については英数字のみできました。
プログラムのuseにある、Jcodeが、働いていないみたいでした。
これはサーバーのサポート外なので、どうしようもないのですが。

そこで、思いついたのは、jcode.plを使って、なんとかならないかなー?と、思ったのですが、これはさすがに、無理でしょうか?

当然できたとしても難しいとは思うのですが、どうでしょう?

無理でしょうか?
できるのでしょうか?できたとしても、かなり難しいのでしょうか?
できるとしたら、どんな感じに組めばいいのか、参考になるアドバイスがいただけたらと、思っているのですが。

よろしくお願いします。

↓は日本語が表示されなかった、プログラムです。

#!/usr/local/bin/perl -w

use strict;
use Jcode;
use Image::Magick;

# 画像を指定
my $file = "sample.jpg";

# 合成したい文字列
my $text = "ABC123日本語";

# UTF-8へ変換
$text = jcode($text)->utf8;

# オブジェクト作成
my $image = Image::Magick->new;

# 画像読み込み
$image->Read($file);

# 文字を記入する
$image->Annotate(text=>$text, stroke=>'#FFFFFF', fill=>'#005599',
font=>'sazanami-gothic.ttf', pointsize=>'36',
x=>'20', y=>'40', encoding=>'UTF-8');

# 画像出力
print "Content-type: image/jpeg\n\n";
binmode STDOUT;
$image->Write('jpeg:-');

undef $image;
exit;


よろしくお願いします。

ありがとうございました。


よろしくお願いします。

こんばんわ。前回質問したときに、
回答をしていただいた方、ありがとうございました。

原因は、結局のところ、サーバー会社の自分の使っているサーバーに
ImageMagickがインストール?されていなかったみたいでした。
使えないのですが、(使用では使えることになっていた。)
と、連絡したところ、無事使えるようになりました。
ありがとうございました。

ですが、実際、ImageMagickを使ってみて、
その機能の一部である、文字合成については英数字のみできました。
プログラムのuseにある、Jcode...続きを読む

Aベストアンサー

ImageMagickの文字合成は、
UTF-8でエンコードされた文字以外では文字化けします。
ImageMagickの仕様です。

そして、jcode.plはUTF-8を扱うことはできず、
ここは素直にJcode.pmを利用する他ありません。
(PerlのバージョンによってはUTF-8の扱いも可能)

参考URLのページの下の方に書かれてある、
「Tarballを直接入手」という項目より、
ZIP版のJcodeをダウンロードして、展開したのち、
そこに含まれる Jcode.pm ファイルを use しているスクリプトと、
同一のディレクトリに置くことで利用できます。

参考URL:http://openlab.ring.gr.jp/Jcode/index-j.html

Qjcode.pl

日記などのスクリプトを作成しているのですが、とりあえず今まで、そこまでの理由もわからず他のスクリプトに習ってjcode.plをデコード処理部で
&jcode'convert(*value,'sjis');
&jcode'convert(*name,'sjis');
のように使ってきました。

ですが、たまたま今回、jcode.pl等を書き忘れてしまったのですが、ブラウザから投稿してみても文字化けという文字化けが起こりません。スクリプト自身はsjisで書いています。ログファイルもどうやらsjisコードで書き込まれているようなのですが、それでもjcode.plは必要なのでしょうか。windows XP にApache + Active Perl での動作と、@niftyで設置して動作を確認しました。

この場合、jcode.plは必要あるのでしょうか?

Aベストアンサー

汎用性を考えるなら、あったほうが便利です。
絶対に固定環境でしか使わないし、今後も使わない。むしろ、固定環境以外使わせない、と固く信念を貫けるのであれば、そのままでいいかもしれません。

もし、そのコードを他人に配布する予定があるのであれば、保険として対応しておいた方が望ましいでしょう。(事後サポートのことも考えるのであれば余計に)

Qjcode.plのバグでしょうか?KCctchでの質問です。

PerlのプログラムをKCatch.pmで調べていましたが。
次のような表示がされました。
jcode.plのバグでしょうか?プログラムに問題があるのでしょうか?
お教えいただければ幸いです。

../data/clients.txtが開けません。 Catch: Thu Jun 21 08:54:31 2001
--------------------------------------------------------------------------------
[jcode.pl:366:warn] Use of uninitialized value at jcode.pl line 366.
> sub max { $_[ $[ + ($_[$[] < $_[$[+1]) ]; } [jcode.pl:362:warn] Use of uninitialized value at jcode.pl line 362. > $code = ('euc', undef, 'sjis')[($sjis<=>$euc) + $[ + 1];
--------------------------------------------------------------------------------
anquit.cgi with Perl 5.00502 for freebsd

PerlのプログラムをKCatch.pmで調べていましたが。
次のような表示がされました。
jcode.plのバグでしょうか?プログラムに問題があるのでしょうか?
お教えいただければ幸いです。

../data/clients.txtが開けません。 Catch: Thu Jun 21 08:54:31 2001
--------------------------------------------------------------------------------
[jcode.pl:366:warn] Use of uninitialized value at jcode.pl line 366.
> sub max { $_[ $[ + ($_[$[] < $_[$[+1]) ]; } [jcode.pl:362:warn] Use of uninitia...続きを読む

Aベストアンサー

もしかすると御手持ちのjcode.plのバージョンが古いのかも知れません。
最新バージョンは2.13です。下のURLの一つ目からダウンロードできます。
またjcode.plの上位互換型モジュールとしてJcode.pmと言うものもあります。
(二つ目のURL)こちらも試してみられてはいかがでしょうか。

Qjcode.pl 使い方

いままで、日本語を使わなかったのですが、
今、開発中のCGIでは日本語を処理しています。
ローカルサーバでのテストでは問題なかったのですが、βテストを開始してみると、環境によって文字化け。
出力する同じHTMLの中に場合によってEUCとS-JISなどが混在する状況になってしまいました。
そこで、jcode.plを使用し、コードの統一を行おうと思うのですが、日本語での解説ページまた、使用方法を解説している質問、回答が見つからなかったので、関数の使用方法を教えていただきたく思います。
私は、英語がすごく苦手なのでjcode.plの中の使用方法を見ても全く読めなかったのです。
日本語で分かりやすく書いていただけると幸いです。

Aベストアンサー

こちらご参考になるかと思います。

参考URL:http://perl.misty.ne.jp/14.html

Qjcode.plのかわり

jcode.plの
jcode::tr()
のかわりを探しています。

jcode.plの
jcode::tr(\$val,'0-9A-Za-z ()_@-','0-9A-Za-z ()_@-');
をPerl5.18.2で使用するとエラーが出てしまいます。これを回避したい。

プログラムがUTF-8であれば
$val =~ tr/0-9A-Za-z ()_@-/0-9A-Za-z ()_@-/;
のようにすれば実現可能みたいですが、プログラムはEUCで書かれています。
影響範囲からプログラムの文字コードをかえることはできれば避けたい。

一文字ずつ変換することも考えましたが、この方法ではパフォーマンスに懸念があります。

jacode.plなるものもありますが、これに置き換えるだけでは文字化けしてしまいました。

jcode::tr()のかわりになるような手段はあるのでしょうか?

Aベストアンサー

UTF-8 の内部文字列にすれば、tr で文字単位で変換することができます。プログラムのソースが EUC-JP でとのことなので、少し厄介なところはあります。

use strict;
use Encode;
use NKF;

my $str = "\xAD\xEA0101アア";
$str = decode 'utf8', nkf('-Ew', $str);
my $from = decode 'utf8', nkf('-Ew', '0-9A-Za-z ()_@ー');
eval "\$str =~ tr/$from/0-9A-Za-z ()_\@-/;";
$str = nkf '-We', encode('utf8', $str);
print "$str\n";

私の Linux 上のパソコンでは、上記のコードで (株) は文字化けせずに全角の0と1を半角に変換します。


おすすめ情報