« [Ruby] Win32OLEのベンチマークテスト(2) | トップページ | [Ruby] Win32OLEとEUCと51932と20932 »

2008年10月 8日 (水)

[Ruby] Win32OLEとEncoding.default_internal


Encoding.default_internalが trunkにコミットされた。



Win32OLE側も追随。



スクリプトの途中でEncoding.default_internalがころころ変更されることはないので、
とりあえず、WIN32OLE.codepageの初期設定値を決めるときにだけ、Encoding.default_internal
を参照することにした。



W: ~>cat enct.rb
require 'win32ole'
utf8_A = [0x3042].pack("U*").force_encoding("UTF-8")
sjis_A = utf8_A.encode('Windows-31J')
dict = WIN32OLE.new('Scripting.Dictionary')
dict.add('A', utf8_A)
p WIN32OLE.codepage
p Encoding.default_internal
p Encoding.default_external
p dict['A']
p dict['A'].encoding
p dict['A'] == utf8_A
p dict['A'] == sjis_A
W: ~>/usr/local/ruby-trunk/bin/ruby -v -E :utf-8 enct.rb
ruby 1.9.0 (2008-10-08 revision 19619) [i386-cygwin]
65001
#<Encoding:UTF-8>
#<Encoding:US-ASCII>
"あ"
#<Encoding:UTF-8>
true
false
W: ~>/usr/local/ruby-trunk/bin/ruby -v -E :windows-31J enct.rb
ruby 1.9.0 (2008-10-08 revision 19619) [i386-cygwin]
932
#<Encoding:Windows-31J>
#<Encoding:US-ASCII>
"あ"
#<Encoding:Windows-31J>
false
true
W: ~>/usr/local/ruby-trunk/bin/ruby -v -E utf-8:windows-31J enct.rb
ruby 1.9.0 (2008-10-08 revision 19619) [i386-cygwin]
932
#<Encoding:Windows-31J>
#<Encoding:UTF-8>
"あ"
#<Encoding:Windows-31J>
false
true
W: ~>/usr/local/ruby-trunk/bin/ruby -v -E windows-31J:utf-8 enct.rb
ruby 1.9.0 (2008-10-08 revision 19619) [i386-cygwin]
65001
#<Encoding:UTF-8>
#<Encoding:Windows-31J>
"あ"
#<Encoding:UTF-8>
true
false
W: ~>


それっぽく動いているみたい。


|

« [Ruby] Win32OLEのベンチマークテスト(2) | トップページ | [Ruby] Win32OLEとEUCと51932と20932 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [Ruby] Win32OLEとEncoding.default_internal:

« [Ruby] Win32OLEのベンチマークテスト(2) | トップページ | [Ruby] Win32OLEとEUCと51932と20932 »