Yura
2005-09-30 20:10:59 UTC
Hi!
I wrote to this mail list some months before and described an issue
that doesn't allow bitpim to run on non-English versions of Win XP.
Other people also wrote about that.
Problem still exists in the last build.
As far as I understand, any file operation fails, when file path
contains non-ascii characters.
BitPim stores some information in user home directory (\Documents
and Settings\Username\xxxx\xxx...), and in Russian versions of XP
this path is renamed and contains Russian characters. So BitPim
even fails to start :(
After I installed it on English XP version, everything seems to be ok,
BUT when I try to open any file, or select a directory with Russian
characters, it silently dies.
There are many people outside US that want to use BitPim, among them
people in Russia, Ukraine but they can't :(
This unicode issue may lie deep in standard pythons libraries, because
as far as I remember, I had similar problems with other python sw.
BUT THERE'S A SIMPLE WORKAROUND: have an option (maybe, a checkbox in
installer) to avoid use \Documents and Settings\ subfolders and store
all information in \Program Files\BitPim\ subdirectories. It would
allow at least to run the software. Then accessing only ascii-named
files wouldn't be a great problem, because most people here don't
use Russian characters in file names for compatibility.
I am not familiar with Python, and don't have time to learn this
language now, but I have can help with testing. If someone is willing
to solve this, you can contact me by ICQ 39861555 or MSN:
***@ukr.net
Here is debug info copied form bitfling log:
---------------------------------------------------------------------
22:57:16.608: Traceback (most recent call last):
File "wx\_core.pyo", line 13266, in <lambda>
File "bitfling\bitfling.pyo", line 642, in StartIfICan
File "bitfling\bitfling.pyo", line 635, in GetCertificateFilename
UnicodeEncodeError: 'ascii' codec can't encode characters in position 26-28: ordinal not in range(128)
Variables by last 8 frames, innermost last
Frame ? in bp.py at line 73
_donowt = <class __main__._donowt at 0x009F66C0>
ignorer = <function ignorer at 0x009FD270>
__name__ = '__main__'
__doc__ = 'Main entry point to Bitpim\n\nIt invokes BitPim in gui or commandline mode as appropriate\n\***@Note: Only gui mode is supported at the moment\n'
Frame run in bitfling\bitfling.pyo at line 785
menu = <wx._core.Menu; proxy of C++ wxMenu instance at _a0750801_p_wxMenu>
mw = <bitfling.bitfling.MainWindow; proxy of C++ wxFrame instance at _50720801_p_wxFrame>
args = ['C:\\Program Files\\BitPim\\bitpim.exe', 'bitfling']
theApp = <wx._core.PySimpleApp; proxy of C++ wxPyApp instance at _b0be0701_p_wxPyApp>
taskwin = <bitfling.bitfling.MyTaskBarIcon; proxy of C++ wxPyTaskBarIcon instance at _b02d0901_p_wxPyTaskBarIcon>
Frame MainLoop in wx\_core.pyo at line 7493
self = <wx._core.PySimpleApp; proxy of C++ wxPyApp instance at _b0be0701_p_wxPyApp>
Frame MainLoop in wx\_core.pyo at line 6926
args = (<wx._core.PySimpleApp; proxy of C++ wxPyApp instance at _b0be0701_p_wxPyApp>,)
kwargs = {}
Frame <lambda> in wx\_core.pyo at line 13266
event = <wx._core.PyEvent; proxy of C++ wxPyEvent instance at _f02e0901_p_wxPyEvent>
Frame StartIfICan in bitfling\bitfling.pyo at line 642
self = <bitfling.bitfling.MainWindow; proxy of C++ wxFrame instance at _50720801_p_wxFrame>
Frame GetCertificateFilename in bitfling\bitfling.pyo at line 635
path = u'C:\\Documents and Settings\\\u0414\u043e\u043c\\\u041c\u043e\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b'
self = <bitfling.bitfling.MainWindow; proxy of C++ wxFrame instance at _50720801_p_wxFrame>
-------------------------------------------------------------------------------------
Here is the error:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 26-28: ordinal not in range(128)
And this is the unicode path attempted to access:
path = u'C:\\Documents and Settings\\\u0414\u043e\u043c\\\u041c\u043e\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b'
I wrote to this mail list some months before and described an issue
that doesn't allow bitpim to run on non-English versions of Win XP.
Other people also wrote about that.
Problem still exists in the last build.
As far as I understand, any file operation fails, when file path
contains non-ascii characters.
BitPim stores some information in user home directory (\Documents
and Settings\Username\xxxx\xxx...), and in Russian versions of XP
this path is renamed and contains Russian characters. So BitPim
even fails to start :(
After I installed it on English XP version, everything seems to be ok,
BUT when I try to open any file, or select a directory with Russian
characters, it silently dies.
There are many people outside US that want to use BitPim, among them
people in Russia, Ukraine but they can't :(
This unicode issue may lie deep in standard pythons libraries, because
as far as I remember, I had similar problems with other python sw.
BUT THERE'S A SIMPLE WORKAROUND: have an option (maybe, a checkbox in
installer) to avoid use \Documents and Settings\ subfolders and store
all information in \Program Files\BitPim\ subdirectories. It would
allow at least to run the software. Then accessing only ascii-named
files wouldn't be a great problem, because most people here don't
use Russian characters in file names for compatibility.
I am not familiar with Python, and don't have time to learn this
language now, but I have can help with testing. If someone is willing
to solve this, you can contact me by ICQ 39861555 or MSN:
***@ukr.net
Here is debug info copied form bitfling log:
---------------------------------------------------------------------
22:57:16.608: Traceback (most recent call last):
File "wx\_core.pyo", line 13266, in <lambda>
File "bitfling\bitfling.pyo", line 642, in StartIfICan
File "bitfling\bitfling.pyo", line 635, in GetCertificateFilename
UnicodeEncodeError: 'ascii' codec can't encode characters in position 26-28: ordinal not in range(128)
Variables by last 8 frames, innermost last
Frame ? in bp.py at line 73
_donowt = <class __main__._donowt at 0x009F66C0>
ignorer = <function ignorer at 0x009FD270>
__name__ = '__main__'
__doc__ = 'Main entry point to Bitpim\n\nIt invokes BitPim in gui or commandline mode as appropriate\n\***@Note: Only gui mode is supported at the moment\n'
Frame run in bitfling\bitfling.pyo at line 785
menu = <wx._core.Menu; proxy of C++ wxMenu instance at _a0750801_p_wxMenu>
mw = <bitfling.bitfling.MainWindow; proxy of C++ wxFrame instance at _50720801_p_wxFrame>
args = ['C:\\Program Files\\BitPim\\bitpim.exe', 'bitfling']
theApp = <wx._core.PySimpleApp; proxy of C++ wxPyApp instance at _b0be0701_p_wxPyApp>
taskwin = <bitfling.bitfling.MyTaskBarIcon; proxy of C++ wxPyTaskBarIcon instance at _b02d0901_p_wxPyTaskBarIcon>
Frame MainLoop in wx\_core.pyo at line 7493
self = <wx._core.PySimpleApp; proxy of C++ wxPyApp instance at _b0be0701_p_wxPyApp>
Frame MainLoop in wx\_core.pyo at line 6926
args = (<wx._core.PySimpleApp; proxy of C++ wxPyApp instance at _b0be0701_p_wxPyApp>,)
kwargs = {}
Frame <lambda> in wx\_core.pyo at line 13266
event = <wx._core.PyEvent; proxy of C++ wxPyEvent instance at _f02e0901_p_wxPyEvent>
Frame StartIfICan in bitfling\bitfling.pyo at line 642
self = <bitfling.bitfling.MainWindow; proxy of C++ wxFrame instance at _50720801_p_wxFrame>
Frame GetCertificateFilename in bitfling\bitfling.pyo at line 635
path = u'C:\\Documents and Settings\\\u0414\u043e\u043c\\\u041c\u043e\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b'
self = <bitfling.bitfling.MainWindow; proxy of C++ wxFrame instance at _50720801_p_wxFrame>
-------------------------------------------------------------------------------------
Here is the error:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 26-28: ordinal not in range(128)
And this is the unicode path attempted to access:
path = u'C:\\Documents and Settings\\\u0414\u043e\u043c\\\u041c\u043e\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b'