空があんなに高い
歌って踊れるプログラマーを目指して

プロフィール
どんぱん
Author: どんぱん

最近の記事とコメント
トラックバックリスト
カテゴリ
ユーザータグ
過去ログ
メールフォーム

中国語入力

中国語入力はいろいろあるらしいけど、中国出身の同僚から勧められたのはこれ。
搜狗拼音输入法
ピンインを打っていくと候補が出てくるので、直感的に入力できます。入力はShift+AltでON/OFFできます。

sogou.png

インストールするときは、ツールバーとかホームページ設定とか不要なものにチェックがついてるので、注意してチェックを外します。
インストール時に設定ウィザードが始まるけど、何を聞かれているかよくわからないので、とりあえずキャンセル。設定は慣れてきてから少しづつ自分に合わせて変えていったほうがいいです。

スキンがいろいろ公開されていて、今回は「【枕头】熊猫的绿色生活」にしてみました。ダウンロードするとファイル名が「。セユ楨キ。ソミワティオトツフノォノ忞・ssf」のように化けるので、「【枕头】熊猫的绿色生活.ssf」のようにリネームします。

気になる点:
・キーバインドが中国語キーボード専用になっているみたいで、記号をうまく入力できない
・広告がたまに表示されて邪魔
・セキュリティソフトがこれを未知のソフトとみなして反応することがある
スポンサーサイト
2012/08/16(木) | 未分類 | TB:0 | コメント:0

NKFでUTF-8に変換するとおかしい

NKFでShift_JISのテキストをUTF-8に変換すると、「~」が「〜」に化けます。この現象が前から気になっていたので調べてみました。

Shift_JISで全部の文字コードを書いたテキストファイルを作り、Windowsのエディターを使ってこれをUTF-8で保存したファイルと、同様にNKFで変換したファイルを作ります。
この2つを比べてみると、(第1水準以下で)違いがあったのは以下の10文字でした。(第2水準以上ではだいぶ違っていたような気がしましたが、見なかったことにします。)

WindowsNKF
¥
¢
£
¬
¦

Unicodeのコード空間はShift_JISより広く、Shift_JISの1文字がUnicode空間上では複数の文字に対応づく場合があります。上記のことが起こるのはこのためで、NKFの変換結果は必ずしも間違いではありません。
ですが、変換した結果をWindows上で見たり編集したりする必要がある場合は、Windowsと同じ結果を得たいところです。
これには、NKFの出力の文字コードを上記のとおりに置き換えると、いい感じの結果になります。

Rubyで書くとこんな感じです。

sjis.rb:
require 'nkf'
while !STDIN.eof
  l = NKF.nkf("-Sw", readline)
  table = [
    [ "\xe2\x80\xbe", "\xef\xbf\xa3" ], #  ̄
    [ "\xe2\x80\x94", "\xe2\x80\x95" ], # ―
    [ "\xe3\x80\x9c", "\xef\xbd\x9e" ], # ~
    [ "\xe2\x80\x96", "\xe2\x88\xa5" ], # ∥
    [ "\xe2\x80\x92", "\xef\xbc\x8d" ], # -
    [ "\xc2\xa5", "\xef\xbf\xa5" ], # ¥
    [ "\xc2\xa2", "\xef\xbf\xa0" ], # ¢
    [ "\xc2\xa3", "\xef\xbf\xa1" ], # £
    [ "\xc2\xac", "\xef\xbf\xa2" ], # ¬
    [ "\xc2\xa6", "\xef\xbf\xa4" ], # ¦
  ].each do |t|
    l.gsub!(/#{t[0]}/, t[1])
  end
  print l
end

このソースをShift_JISで書いたとして、
$ nkf -Sw < sjis.rb > u.txt
とやると、もともとNKFが変換した結果になり、
$ ruby sjis.rb < sjis.rb > u2.txt
とやると、Windowsと同様の結果になります。

なお、NKFを使うときに、Shift_JIS←→EUCの変換は上記の問題がありません。UTF-8→Shift_JIS/EUCも問題ありません。注意すべきなのはShift_JIS/EUC→UTF-8の変換のみです。
| |
カレンダー
2012/08
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
ページナビ
アーカイブ: 2012年08月
| |
twitter
スケジュール
ピンイン入力
四声数字を四声記号に変換します
(a,e,i,o,u,v(=ü); 1,2,3,4)

リンク集
Copyright 2012 空があんなに高い Some rights reserved.
Photo by Rain Drop // Template by chocolat* // Powered by FC2