人に聞けない痔の悩み、これでスッキリ >>

Perl5.8で、EUCで保存されたテキストファイルを読み込み、Shift-JISで保存しようとしてます。
EUCからShift-JISへの変換は、Encode.pmを使用しています。
テキストファイルに「髙」(ハシゴ高 0xFCE2)や「﨑」が入っていた場合、変換されたデータは「?」(0x3F)になってしまいます。

「髙」や「﨑」をPerlを使用してEUCからShift-JISする方法はありませんでしょうか?


======================================
use Encode qw/ from_to /;

open IN, "data.txt";
$data = <IN>;
close IN;

from_to( $data, 'euc-jp','shiftjis');

open OUT, ">data2.txt";
print OUT $data;
close OUT;
======================================

宜しくお願いします。

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

A 回答 (2件)

>Shift-JISの「髙」(0xFBFC ?)に変換したいのですが、どのようにすればよいのでしょうか。



”髙”という文字は、シフトJIS上、\xEEE0と\xFBFCにマッピングされています。
EUC-jpの\xFCE2に相当するのは、領域的には\xEEE0が妥当かと思われます。

ちなみに、nkfで、コード変換すると、\xFCE2 => \xEEE0 で変換されます。

perl標準のencode.pmでがんばるなら、Encode::FB_XMLCREFを使った上で
気に入らない部分を後から、自前コーディングで、気に入るように加工するしか
ないかと思います。
    • good
    • 1
この回答へのお礼

ありがとうございます。
お礼が遅くなってすみません。

jcode.plでも、\xFCE2 => \xEEE0 で変換されました。
特にEncode.pmを使う理由も無いので、jcode.plを使うことにします。

お礼日時:2005/04/02 10:35

下記のサイトが参考になるかと思います。


http://www.kawa.net/works/jcode/uni-escape.html

ちなみに「髙 Perl」のキーワードでYahoo検索してHITした最初のサイトです。
検索を有効利用すればすぐに分かることもあるのでちょっと試してみては如何でしょうか。

参考URL:http://www.kawa.net/works/jcode/uni-escape.html

この回答への補足

ありがとうございます。

教えていただいたサイトは、すでに見ていますが、それでも分からなかったので、ここに質問しました。
すみません、そのことを書いてなかったですね。ごめんなさい。

教えていただいたサイトのようにすると、以下のような結果になります。
from_to( $data, 'euc-jp','shiftjis', Encode::FB_XMLCREF );

【結果】(テキストファイル)
&#x90c4;


Shift-JISの「髙」(0xFBFC ?)に変換したいのですが、どのようにすればよいのでしょうか。

補足日時:2005/03/30 10:41
    • good
    • 0

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

このQ&Aを見た人が検索しているワード

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

Q「髙(はしごたか)」を文字コード変換

PHPにて、シフトJISで書かれたファイルを読みこみ、文字コードをEUCに変換して出力させる処理を書いています。

mb_convert_encoding($str, "EUC-JP", "SJIS")にて変換させています。

ただ、以下の文字が
髙(はしごたか)、 﨑(たつさき)
うまく変換できずに
「?」という文字になってしまいます。

何か解決方法はないでしょうか??

Aベストアンサー

EUC-JP ==> EUCJP-win
SJIS ==> SJIS-win
で変換できませんか?
文字化けする場合は、ここを参考にしてください。
http://rimk.smartweed.net/diarydata/text/cp51932/cp51932.phps

No.1さんへ
>0x967E(JIS)の「はしごたか」(JIS第3水準漢字)
JIS第3水準ではありません。IBM拡張漢字です。

Q“髙”という字の出し方教えてください!!

“髙”という字の、句点コード・JISコード・シフトJISコードを知っている方はいらっしゃないでしょうか。今、仕事で入力しようとしたのですが出てきません。どうしても必要なため困っています。

文字の入力ツールは、ATOKを利用しています。
ちなみにコンピューターは、会計専用端末『アダムス』という端末を使用しています。

どうか、よろしくお願いします。

Aベストアンサー

「高」のなべぶたの下が,口ではなくはしご状になった,いわゆる「はしご高」ですね。

お使いのパソコンがWindows環境にあれば,次の2ヶ所にこの文字があります。
92区66点 JIS:7C62 シフトJIS:EEE0
118区94点  シフトJIS:FBFC (本来の区点コードは最大で94区94点までなのを,むりやり拡張しているので,シフトJISはありますがJISはありません。←この説明では分かりにくいと思いますが,きちんと説明すると非常に長くなるので…)
ATOKであれば,これらのコードを使った入力自体はできるはずですが,「アダムス」で使っているフォントにあるかどうかが問題ですね。
この文字はもともとJISにはない(正確には「高」と区別しないことにない)ので,Windows以外の環境(例えばマッキントッシュ)では表示されない可能性があります。
(実際,そのような環境の人がこの質問のタイトルを見ると,「“・”という字の出し方教えてください!!」のようになっているかもしれません。
もし,お使いのコンピュータ(のフォント)にこの文字がなく,それでもどうしても必要というのであれば,外字で作成することになるでしょう。

「高」のなべぶたの下が,口ではなくはしご状になった,いわゆる「はしご高」ですね。

お使いのパソコンがWindows環境にあれば,次の2ヶ所にこの文字があります。
92区66点 JIS:7C62 シフトJIS:EEE0
118区94点  シフトJIS:FBFC (本来の区点コードは最大で94区94点までなのを,むりやり拡張しているので,シフトJISはありますがJISはありません。←この説明では分かりにくいと思いますが,きちんと説明すると非常に長くなるので…)
ATOKであれば,これらのコードを使った入力自体はできるはずですが,...続きを読む

Q機種依存文字の文字コード変換

現在、Shift-JISでCGIを作成しています。言語はPerlです。HTMLファイルから送信された文字をDBに登録するのですが、CGIをShift-JISで作成しているのに、DBがEUCとなっているため、jcode.plを利用して文字コードを変換しています。
しかし、文字が機種依存文字である場合、jcode.plでは文字コード変換ができないようで文字化けを起こした文字をDBに登録しようとしてエラーを起こしてしまいます。
何とか機種依存文字をコード変換したいのですが、可能でしょうか?

Aベストアンサー

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 はご存知ですか?
”はしごだか”などの環境依存文字が混在する場合Jcodeでは変換できませんので、Unicode::Japaneseを使うと便利です。

http://search.cpan.org/~hio/Unicode-Japanese-0.40/

PurePerlとしても動作するので、サーバへのインストールも不要です。上記アドレスからDL・解凍後、lib内の Japanese.pm をコピーしてきて利用元のソースと同じパスに置く、あるいは任意のパスに置いてuse libするだけで利用可能です。


use Unicode::Japanese;

my $x = "変換元文字列";
m...続きを読む

Q「高」という漢字

高橋、ありがちな名前ですが,絶対に字を間違えてはいけない場合ありますよね。こんな簡単な字と思いつつ,後日「私の高ははしごの方です」とか,いわれてとしまった,という経験ありませんか。変換されない(ワープロやパソコンでも,でてきた試しがないというか,やり方がわかりましぇーん。(>o<)…)真ん中がはしご状の「高」みたいな字,あいつはいったい何者なんでしょうか?知ってる人からすれば,お馬鹿な質問かもしれませんが,ずーっと前から???なのです。よろしくお願いします。

Aベストアンサー

 この字はよく「ハシゴ高」と呼ばれる字です。後で述べるようにWindowsで表示することはできますが、電子メールやホームページなどでは使えない(使っても他人のパソコンでは読めないことがある)文字、いわゆる機種依存文字です。

 パソコンで使える文字はJIS規格で定められていますが、この中にハシゴ高は入っていないからです。(ただし、JISを定める会議では、入れるか入れないか紛糾したようです。)

 このような例は「高」の他にもありますが、入らなかったのには、それなりの理由があります。たとえば「普通の高」と「ハシゴ高」を別の漢字にしてしまうと、ネットでタカハシさんを検索したい場合に片方しか出てきません。

 そこでJISでは、一定の規準を設けて同じ意味の漢字を同一視しています。これを「包摂」と呼びます。つまり、JISでは「普通の高」と「ハシゴ高」は包摂されているのです。

 この辺りの事情は参考URLで詳しく解説されています。

 とは言っても、やはりハシゴ高を使いたいという声はあります。そこでWindows(のMS明朝など、いくつかのフォント)では、JISの範囲外で漢字をいくつか追加しています。

 たとえばハシゴ高は「EEE0」という番号(文字コード)で入っています。したがって、MS-IMEでコード入力すれば表示されます。

 全角文字が入力できる状態で、キーボードから「EEE0」と打ち、続いてF5キーを押してください。

参考URL:http://www.watch.impress.co.jp/internet/www/column/ogata/part1_1.htm

 この字はよく「ハシゴ高」と呼ばれる字です。後で述べるようにWindowsで表示することはできますが、電子メールやホームページなどでは使えない(使っても他人のパソコンでは読めないことがある)文字、いわゆる機種依存文字です。

 パソコンで使える文字はJIS規格で定められていますが、この中にハシゴ高は入っていないからです。(ただし、JISを定める会議では、入れるか入れないか紛糾したようです。)

 このような例は「高」の他にもありますが、入らなかったのには、それなりの理由があります。たと...続きを読む

Q「いずれか」と「いづれか」どっちが正しい!?

教えて下さいっ!
”どちらか”と言う意味の「いずれか」のかな表記として
「いずれか」と「いづれか」のどちらが正しいのでしょう???

私は「いずれか」だと思うんですが、辞書に「いずれか・いづ--。」と書いてあり、???になってしまいました。
どちらでもいいってことでしょうか?

Aベストアンサー

「いずれか」が正しいです.
「いづれ」は「いずれ」の歴史的かな遣いですので,昔は「いづれ」が使われていましたが,現代では「いずれ」で統一することになっていますので,「いずれ」が正しいです.

QJAVA 文字コード変換

こんにちは。
JAVAの文字コード変換のところで教えて頂きたい所があります。

はしご高(髙)  の文字をUTF-8からJISコードに変換してテキストファイルに書き込んでいるのですが、文字化けして"?"という文字になっています。

"髙"の文字をUTF-8からJISコードに変換の仕方のコーディング方法を教えて頂けないでしょうか。
現在下記の様に変換を行って書き込んでいます。
 String str = "髙";
 byte[] buf = str.substring(0, 1).getBytes("JIS0208");

OS:WindowsXP DB:Oracle10g 

宜しくお願い致しますm(__)m

Aベストアンサー

実行されているJDKのバージョンはいくつになりますか?
JDK1.5以降でないと「x-windows-50220」がサポートされていないようです。

Q「ご連絡いたします」は敬語として正しい?

連絡するのは、自分なのだから、「ご」を付けるのは
おかしいのではないか、と思うのですが。
「ご連絡いたします。」「ご報告します。」
ていうのは正しい敬語なのでしょうか?

Aベストアンサー

「お(ご)~する(いたす)」は、自分側の動作をへりくだる謙譲語です。
「ご連絡致します」も「ご報告致します」も、正しいです。

文法上は参考URLをご覧ください。

参考URL:http://www.nihongokyoshi.co.jp/manbou_data/a5524170.html

QWordで、1ページを丸ごと削除するには?

1ページしか必要ないのに、真っ白な2ページ目がその下に表示されてしまった場合、この余分な2ページ目を一括削除(消去)する為に、何かいい方法があるでしょうか?

Aベストアンサー

<表示されてしまった場合>
これはそれなりに理由があるわけで、改ページや改行によって、次のページにまで入力が及んでいる時にそうなります。
特に罫線で表を作成し、ページの下一杯まで罫線を引いたときなどには、よくなる現象です。

さて、メニューの「表示」で段落記号にチェックが入っていないと、改行や改ページなどの入力情報が見えず、白紙のページを全て選択→削除してもそのままということが良くあります。
1 改行マークが白紙のページの先頭に入っていれば、それをBackSpaceで消してやる。
2 罫線を使っている場合は、それでも効果がない場合がありますが、その時は行数を増やしてやる。
などの方法があります。

Q「参考まで」という言い回しについて

「参考まで」「参考までに」といった言い回しを職場のメール等でよく目にするのですが、自分にはどうも違和感があり、使わないようにしています。そもそもこれは正しい日本語なのでしょうか?

Aベストアンサー

はじめまして。

<そもそもこれは正しい日本語なのでしょうか?>

正しくないとは言えないと思います。

「までに」は「まで」+「に」の複合助詞で、
「まで」:程度がそれ以上及ばないことを示す副助詞
「に」:時を示す格助詞
という働きをしています。

このような、格助詞や接続助詞で文が終わる表現は、古語の時代から存在します。
例:
「にて」「とも」「ども」「ば」など

ご質問文は述部が省略された口語表現です。本来は
「ご参考までに(目を通して下さい)」
といった、動詞句が省略されています。

口語(話言葉)では、リズムやテンポ、語呂を整えるために、わかりきった動詞、長い述部を省略して明確に要件が伝わるようにすることがあります。

例:
「また明日(会いましょう)」
「それではまた(お会いしましょう)」
「お陰様で(元気です)」

また文語(書き言葉)でも、こうした省略が起こることはあります。
例:
「友情のしるしに」
「感謝の気持ちを込めて」
「に」「て」はそれぞれ格助詞・接続助詞ですが、この場合は、テンポというよりは、「粋」な締めくくりを意図しての省略用法になると思います。

以上のように、こうした省略用法は、素早く要件を伝えるため、粋な表現のために工夫された、言葉の便宜上の用途ですから、正しくないとは言えません。「便利な語法」として、TPOや必要に応じて使い分ければいいと思います。

特に敬意を払う相手に対しては、口語での省略表現は失礼にあたることがあるので、語尾まで敬語で修辞した方がいいでしょう。
例:
「ご参考までにお目通し下さい」
「ご参考までにご拝読下さい」

ちなみに、私もこのサイトでの回答の末尾に「ご参考までに」「ご参考になれば」といった助詞止め表現をよく使います。この省略には、一種の謙譲(献上?)の気持ちを込めて使っております。この省略の背後には、「お役に立てるかわかりませんが、ご参考程度にしていただければ幸いです」という謙譲の意味が込められています。ただこのような長い文章をだらだら書いて、余計な装飾文にするのを避けた、一種の配慮と思っております。

以上ご参考までに。(笑)

はじめまして。

<そもそもこれは正しい日本語なのでしょうか?>

正しくないとは言えないと思います。

「までに」は「まで」+「に」の複合助詞で、
「まで」:程度がそれ以上及ばないことを示す副助詞
「に」:時を示す格助詞
という働きをしています。

このような、格助詞や接続助詞で文が終わる表現は、古語の時代から存在します。
例:
「にて」「とも」「ども」「ば」など

ご質問文は述部が省略された口語表現です。本来は
「ご参考までに(目を通して下さい)」
といった、動詞句が...続きを読む

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。


人気Q&Aランキング