Python 3.4 では、winreg.QueryValueEx()
テキスト ファイルと比較するために、レジストリからキー値を取得するために使用しています。REG_BINARY
キー値bytes
が unicode 値であるという問題が発生しました。
- 予想されるレジストリ キーの値 - 52 50 43 46 01 1b 00 00 00 ff fe ff 04 46 00 6c 00 61...
- 返されたキー値 - b' RPCF \x01\x1b\x00\x00\x00\xff\xfe\xff \x04F\x00l\x00a\x00t\x00\x00\n \x00\x8b...' (いくつかの問題のある値は太字)
- いくつかのデコード\エンコード オプションを試しましたが、型が混在しているためすべて失敗しました (例:
key_val.decode('utf-8')
returned{UnicodeDecodeError}'utf-8' codec can't decode byte 0xff in position 9: invalid start byte
)
16 進値のリストである戻り値を、予想される 16 進値を保持するテキスト ファイルに使用します。これらの太字の値は 16 進形式ではないため、想定されていません。具体的に処理するための回避策を事前にすべて知っているわけではありません。
Python 2.7 では問題ありませんでした。これは、Python 3 の分離str
やbytes
、Python 3 の winreg のバグに関係していると推測しています。
単一のタイプに統一するための支援とヒントをいただければ幸いです。ありがとう!