[#44909] VRDdeClientについて — Toshiyasu Soejima <clev@...2.so-net.ne.jp>

17 messages 2008/05/11

[#44936] yamlとencoding — "Yutaka Kanemoto" <kinpoco@...>

金本と申します。

16 messages 2008/05/14

[ruby-list:44879] Re: NKFでの文字変換について

From: ishida@...
Date: 2008-05-01 02:40:21 UTC
List: ruby-list #44879
成瀬さん、お世話になりました。
下記のように変更し、0x2015に変換できるようになりました。

#! ruby -Ku
require "nkf"
utf8 = "—"
utf16le = NKF.nkf("-W80w16L -xm0 --no-best-fit-chars", utf8) 
open("./utf16le.txt", "wb") do |f|
  f.print utf16le
end

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


"NARUSE, Yui" <naruse@airemix.jp> wrote on 2008/05/01 00:39:16:

> 成瀬です。
> 
> ishida@topics.or.jp wrote:
> > NKFで"—"をUTF−8(0xE28095)からUTF−16LEに変換したときに
、
> > "—"(0x2015)に変換されずに、"?"(0x2014)に変換されます。
> > ※ソースコードは以下です。
> > 
> > バグだと思うのですが?
> > どうしたら良いでしょうか、教えてください。
> 
> UTF-8 から UTF-16 への変換等における罠だとは思っているのですが、
> 一応仕様という認識です。
> 
> 理由としては nkf ではこれを始めとして、CP932 拡張周りの文字を中心に、
> 日本語文字コードと Unicode で多対一対応な文字が多々あるのですが、
> これが Unicode 間での変換でも動いているからです。
> 
> とりあえず意図しているであろう動作にするためには、
> -xm0 --no-best-fit-chars を加えればよいです。
> 
> utf16le = NKF.nkf("-xm0 --no-best-fit-chars --ic=UTF-8 --oc=UTF-16LE", 
utf8)
> が見やすいかな
> 
> -- 
> NARUSE, Yui  <naruse@airemix.jp>
> 

In This Thread