Masahiro Kitajima
katon****@katon*****
2006年 6月 1日 (木) 17:05:31 JST
この版で作成した .EXE ファイルのプロパティを explorer で表示さ せた時、バージョン情報の表示が空になっています。 以前使っていた Uconv.u8tou16 と、それを置き換えた Iconv.conv の 出力が異なるためでした。 require 'iconv' require 'uconv' @key = "Comments" p Uconv.u8tou16(@key) p Iconv.conv("UTF-16", "UTF-8", @key) p Iconv.conv("UTF-16LE", "UTF-8", @key) #=> "C\000o\000m\000m\000e\000n\000t\000s\000" "\376\377\000C\000o\000m\000m\000e\000n\000t\000s" "C\000o\000m\000m\000e\000n\000t\000s\000" Index: lib/exerb/resource/version_info.rb =================================================================== RCS file: /cvsroot/exerb/exerb/lib/exerb/resource/version_info.rb,v retrieving revision 1.13 diff -u -r1.13 version_info.rb --- lib/exerb/resource/version_info.rb 26 Apr 2006 04:36:38 -0000 1.13 +++ lib/exerb/resource/version_info.rb 1 Jun 2006 07:38:38 -0000 @@ -116,7 +116,7 @@ block = Exerb::Win32::Struct::VersionInfoBlock.new block.type = @type - block.key = Iconv.conv("UTF-16", "UTF-8", @key) + block.key = Iconv.conv("UTF-16LE", "UTF-8", @key) block.data = @value block.value_length = (@unicode ? @value.size / 2 : @value.size) block.total_length = block.pack.size + packed_children.size @@ -145,7 +145,7 @@ class BlockType1String < BlockType1 def initialize(key, value) - super(key, Iconv.conv("UTF-16", "UTF-8", value.to_s) + "\0\0", true) + super(key, Iconv.conv("UTF-16LE", "UTF-8", value.to_s) + "\0\0", true) end end # BlockType1String -- 北島雅博(かとんぼ)