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

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@632) [低] [未処理]
@632■ (#1999) UNICODE変換について - 寝込んだ (2012-05-11 20:00) /低 未処理
【症状】「-」「~」をUNICODE変換すると、よく似た別の記号?になります。
【再現方法】
1.「-」や「~」(SHIFT-JISのファイルから読んだものでも、nakopad直打ちでも)をUNICODE変換してテキストファイルに保存します。
2.メモ帳を別途起動し、ファイルメニュー→開く、から
先ほど保存したテキストファイルをUNICODEで開くと、
「-」や「~」に良く似ていますが別の記号があります。

少なくとも変換では出てこない記号です。

【要望】UNICODE変換はこれが正しい動作なのか回答頂きたいです。
【バージョン】1.5332
【その他】

(#2038) UNICODE変換について - 文平 (2012-08-26 17:31) /低 未処理
正しい動作だと思います。
寝込んださんのおっしゃっている"別の記号"というのはUICODEの記号です。
UNICODE変換がある理由から言うとその動作は正しいといえます

(#2044) SJISからの文字コードの変換の問題 - うぇいく (2012-09-17 04:59) /低 未処理
 UNICODEが・・というよりも、ShiftJISに絡む問題になるのですが、一般的にShiftJISと呼ばれる文字コードは文字の集合自体がOSや環境で微妙に異なります。そのため、それぞれの集合ごとにUnicodeと変換するための定義(マップ)も微妙に異なります。
元の定義をほぼそのまま実装している、通称「SHIFT_JIS」の集合。
MS-Windowsで使用されている、「MS932」「CP932」「Windows-31j」の集合。
MACで使用されていたもの。sjis-macとかそんな名前がつくことがある(あまり出番が無い)の集合。
世の(ユーザが触れる)OSの大半がMS-Windowsであるために、MS932にことをShift_JISと呼んでいても、間違いとは言えません。
これらの集合は、大多数の部分は共通なので、間違えていても問題が発生しない場合がほとんどです。
化けてしまうのは、大半は、共通ではない特定の文字を含んでいて、
(A)変換する元として指定する時に、MS932の内容をSJISとして他のコードに変換した場合と、
(B)MS932から他のコードに変換した内容を、(MS932ではなく)SJISに戻そうとした場合
です。
(もちろん、AでもBでも、MS932とSJISの位置が逆でも化けます。念のため。)

 なでしこの場合、集合の使い分けが少しややこしく、以下のようになるようです。
※「あ」のマッピングはどれでも同じなので実質、差はでません。

・UNICODE変換のように、入力側の文字コードを自動認識させて変換する関数は、上記の中では「SHIFT_JIS」として扱われます。
(『「あ」をUTF8変換』とした場合、SHIFT_JIS→UTF8のマップが用いられる)

・入力側の文字コードが関数名に含んでいる関数の場合、「MS932」として扱われます。
(『「あ」をSJIS_UTF8変換』とした場合、MS932→UTF8のマップが用いられる)

・入力側の文字コードを引数で指定できる場合、明示的にどれでも指定できます。
(『「あ」を「SJIS」から「UTF8」へ文字コード変換』とした場合、SHIFT_JIS→UTF8のマップが用いられ、『「あ」を「MS932」から「UTF8」へ文字コード変換』とした場合は、MS932→UTF8のマップが用いられる)

Windows方言のSHIFT_JIS(MS932)と断定できる要素が無い限りは、1番、標準仕様に近いものとして扱うというのは、1つの方法です(共通した文字が多すぎて、自動的に判別することは不可能)。なので、なでしこの現在の仕様ではそのとおりということになると思います(正しいかどうかは分かりませんが、「確実な正解」は無いと思っています。)

 この微妙な問題に絡まないようにするためには、自動認識に任せずに、常に明示することで、回避できます(自動認識の限界なのでどうにもならないため。)
(Unicode変換だと明示できないので文字コード変換使うことになります)

(#1999)へ返信する:

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

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

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