New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NVDA doesn't work in programs containing non-ASCII characters in file name of the executable #1352

Closed
nvaccessAuto opened this Issue Feb 3, 2011 · 3 comments

Comments

Projects
None yet
2 participants
@nvaccessAuto

nvaccessAuto commented Feb 3, 2011

Reported by aleksey_s on 2011-02-03 08:13
str:

  • find any executable
  • rename it to "тест.exe"
  • run it
    Current results:
    NVDA is completely unusable in the app.
    Expected results:
    NVDA should handle it properly.
    Additional info:
ERROR - core.Notify (10:01:39):
errors in this core pump cycle
Traceback (most recent call last):
  File "D:\nvda\main\source\core.py", line 254, in Notify
    IAccessibleHandler.pumpAll()
  File "D:\nvda\main\source\IAccessibleHandler.py", line 845, in pumpAll
    processGenericWinEvent(*winEvent)
  File "D:\nvda\main\source\IAccessibleHandler.py", line 605, in processGenericWinEvent
    appModuleHandler.update(winUser.getWindowThreadProcessID(window)[0])
  File "D:\nvda\main\source\appModuleHandler.py", line 113, in update
    getAppModuleFromProcessID(processID)
  File "D:\nvda\main\source\appModuleHandler.py", line 91, in getAppModuleFromProcessID
    mod=fetchAppModule(processID,appName)
  File "D:\nvda\main\source\appModuleHandler.py", line 136, in fetchAppModule
    exists = doesAppModuleExist(appName)
  File "D:\nvda\main\source\appModuleHandler.py", line 116, in doesAppModuleExist
    return any(importer.find_module("appModules.%s" % name) for importer in _importers)
  File "D:\nvda\main\source\appModuleHandler.py", line 116, in <genexpr>
    return any(importer.find_module("appModules.%s" % name) for importer in _importers)
  File "c:\python27\lib\pkgutil.py", line 186, in find_module
    file, filename, etc = imp.find_module(subname, path)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

Marking as critical as it has a big impact on non-English users.

@nvaccessAuto

This comment has been minimized.

nvaccessAuto commented Feb 3, 2011

Comment 1 by aleksey_s on 2011-02-03 08:14
Any relation with #377?

@nvaccessAuto

This comment has been minimized.

nvaccessAuto commented Feb 3, 2011

Comment 2 by briang1 on 2011-02-03 11:32
For the record, if you rename a .wav with any of these characters it won't play in Winamp, or an RTF which won't load into Jarte, claiming it cannot find the file in the latter case. One suspects its stripping the high bit.
Also its not just whole file names that fail with the error you gave. You only need to substitute the one character.
If run under Hal however, although the filename now appears to be just blank, the executable does run OK.

@nvaccessAuto

This comment has been minimized.

nvaccessAuto commented Feb 3, 2011

Comment 4 by jteh on 2011-02-03 22:59
Fixed in a8e2e36.
Changes:
Changed title from "NVDA doesn't work in programs containing national characters in file name of the executable" to "NVDA doesn't work in programs containing non-ASCII characters in file name of the executable"
State: closed

@nvaccessAuto nvaccessAuto added the bug label Nov 10, 2015

@nvaccessAuto nvaccessAuto added this to the 2011.1 milestone Nov 10, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment