[exerb-dev:0490] Re: snapshot20060531

Back to archive index

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

-- 
北島雅博(かとんぼ)




exerb-developer メーリングリストの案内
Back to archive index