「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@699) [低] [解決]
@699■ (#2208) 文字EUC変換すると半角カタカナが全角カタカナになる - okbtso (2013-08-22 16:04) /低 未処理
【症状】EUC変換すると半角カタカナが全角カタカナになる
【再現方法】
X=「漢字交じりアイウエヲ」
XをEUC変換して「{デスクトップ}euc_1.txt」に保存
Y=XをSJIS_UTF8N変換
Yを「{デスクトップ}utf8n.txt」に保存
Yをutf8nからeucへ文字コード変換して「{デスクトップ}euc_2.txt」に保存
終了

結果です。
euc1_.txt および euc_2.txt の内容
========================
漢字交じりアイウエヲ
========================

utf8n.txt の内容
=========================
漢字交じりアイウエヲ
=========================

【要望】EUCでも半角カタカナに変換してほしい
【バージョン】 なでしこバージョン 1.5332で確認

【その他】EUC変換でなく、文字コード変換で sjis, euc を指定しても同様です。
utf8では問題なく半角カタカナになります。

(#2210) 文字コードの変換の際、半角カタカナが全角カタカナになる - うぇいく (2013-08-22 17:38) /低 未処理
EUC-JPの半角カナを用いると問題の発生する環境というものが存在(※)するため、
普通に変換しようとした際には自動的に全角カナへと変換しています。
(だと思います。なので、動作の変更はしないと思います。)

確実に大丈夫という場合(自分で保存したデータを自分で参照する場合等)、nkfのオプションを直接指定して、
----
X=「漢字交じりアイウエヲ」
Xを「--ic=MS932 -x -e」でNKF変換
----
等とすることで、半角カナを維持したまま変換することが可能です。
--ic=MS932は、入力文字列の文字のエンコードを指定しています。
-xは、半角カナから全角カナへの自動的な変換を抑止します。
-eは、出力文字列の文字のエンコードとして標準的なeuc-jpを指定しています。
自分のプログラムから参照するのではなく、他のシステムや人に渡す(メールでの送信も含む)場合は、十分注意が必要です。

※その昔のUnix系OSでOSのエンコードとしてEUC-JPが一般的だったころ、半角カナを表示できない環境が多くあったようです。今はUTF8が一般的です。
 また、エンコードの自動認識の際、EUC-JPの半角カナは誤認識の原因になることもあります。

蛇足。
 いわゆるShift_JISには、MS-DOSやMS-Windowsで用いられているMS932(CP932)があり、標準的なShift_JISとは微妙に異なったりします。正しく指定していない場合、ごく少数の特定の文字で化けてしまったりします。
 同じキャラクターセットの別のエンコードにあたるEUC-JPにも似たようなものがあり、標準的なEUC-JP以外に、MS-DOSやMS-WindowsのCP51932や、SorarisのeucJP-ms等があり、それぞれ微妙に異なります。どれにすればよいのかは、受け取り側に確認するのが確実です。

(#2211) またまたありがとうございます - okbtso (2013-08-22 18:22) /低 解決
#2044 のうぇいく さんの記事を参考に
Xを「MS932」から「EUC-JP」へ文字コード変換
として自己解決しました。
その後、掲示板をみたら、うぇいくさんからご丁寧な回答がきていて(その速さに)吃驚いたしました。

(#2208)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能