ログにマルチバイト文字を出力する
やってみました。
jp2012.2 rev 5207
確実には再現できないのですが、まれにログの encoding でエラーが発生するので、このチケットを再度オープンします。
本家の inputMethods 拡張の影響かもしれません。
lp:nvdajp 4325
ERROR - core.Notify (14:43:38): errors in this core pump cycle Traceback (most recent call last): File "core.py", line 350, in Notify IAccessibleHandler.pumpAll() File "IAccessibleHandler.py", line 843, in pumpAll processGenericWinEvent(*winEvent) File "IAccessibleHandler.py", line 585, in processGenericWinEvent NVDAEvent=winEventToNVDAEvent(eventID,window,objectID,childID) File "IAccessibleHandler.py", line 504, in winEventToNVDAEvent obj=NVDAObjects.IAccessible.getNVDAObjectFromEvent(window,objectID,childID) File "NVDAObjects\IAccessible\__init__.py", line 38, in getNVDAObjectFromEvent accHandle=IAccessibleHandler.accessibleObjectFromEvent(hwnd,objectID,childID) File "IAccessibleHandler.py", line 335, in accessibleObjectFromEvent log.debugWarning("oleacc.AccessibleObjectFromEvent with window %s, objectID %s and childID %s: %s"%(window,objectID,childID,e)) File "logHandler.py", line 145, in debugWarning self._log(log.DEBUGWARNING, msg, args, **kwargs) File "logHandler.py", line 131, in _log msg = re.sub(r"\\u([0-9a-f]{4})", lambda x: unichr(int("0x"+x.group(1),16)), unicode(msg)) UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 101: ordinal not in range(128)
以下のコミットで暫定的なエラー回避をしました。
lp:nvdajp 4327
ログビューワーやログファイルに含まれる日本語などのマルチバイト文字が \uXXXX のように文字コードで出力されているのですが、日本語に関する開発において不便なので、改良を検討します。