#1105 Problems with non-ASCII characters on Linux

v1.0_(example)
closed
nobody
None
1
2013-09-28
2013-07-03
Simon
No

I am building Password Safe from git HEAD on Fedora 19 on amd64.
My $LANG is de_DE.UTF-8. I use the rpm target of the makefile to build pwsafe.

The resulting binary has problems with international characters (German umlauts in my case). When I open a password database from a path that contains umlauts I get the error message "File or Path not found".

When I open the file from a working location, entries that contain umlauts are garbled and contain two odd characters instead of the umlaut. "ü" is displayed as "ü" for example. This seems as if UTF-8 is decoded as Windows-1252.

Related

Discussion: Problems with non-ASCII characters on Linux

Discussion

  • Could you please run pwsafe from console (terminal app) and paste here its output (if there was something wrong in locale initialization, it should say something about it). Also could you please create and attach here simple tar archive with test database in subdirectory with problem name (so we could reproduce problem path locally).

     
  • Simon
    Simon
    2013-07-10

    Starting pwsafe from a console prints nothing.

    I have attached an archive that has the following structure:

    example/
    |-- passes.psafe3
    `-- Passwörter
        `-- passwörter.psafe3
    

    The file example/Passwörter/passwörter.psafe3 was created with the Windows version of Passwordsafe via wine with the password "aaa". When I rename it to exaple/passes.psafe3 and open it with my wxwidgets build I get the garbelled characters. I added another entry in that file ("Beispiel 2 äöü ÄÖÜ") that displays incorrectly in the Windows version (just "Beispiel 2").

    So it's quite clear that there is a character encoding problem.

     
    Attachments
  • Simon
    Simon
    2013-07-11

    I've played around a bit and found the problem:

    Reverting commit 7813d544927fd15c49034df7c14ad105a090b1a1 "Initialize language support in app::OnInit(), not from the app ctor, so it can display assert failure msgbox without crashing. " from 2013-06-07 fixes the problems for me.

     
  • Saurav Ghosh
    Saurav Ghosh
    2013-07-12

    Can you please post the values of your LANGUAGE, LC_* variables also? Reverting 7813d54... brings back a crash I tried to fix with that commit.

    I can probably make a different fix, but would like to see why it doesn't work as it is.

     
  • Simon
    Simon
    2013-07-12

    No Problem:

    LANG=de_DE.utf8
    LC_MEASUREMENT=de_DE.utf8
    LC_MONETARY=de_DE.utf8
    LC_NUMERIC=de_DE.utf8
    LC_PAPER=de_DE.utf8
    LC_TIME=de_DE.utf8
    

    $LANGUAGE is not set.

     
  • Saurav Ghosh
    Saurav Ghosh
    2013-07-12

    I couldn't try to reproduce it, even after installing the German language pack, changing the locale and setting all LC_ variables to what you have. But then, I'm trying on 32-bit Ubuntu

    Can you please try the attached patch and see if this solves the problem? Please re-apply the 7813d544927fd15c49034df7c14ad105a090b1a1 commit first.

    Btw, what version of wxWidgets are you using? I tried with 2.8.12

     
    Attachments
  • Simon
    Simon
    2013-07-12

    Your patch applied to git HEAD solves the issue for me.

    My wxWidgets is also at 2.8.12.

     
  • Simon
    Simon
    2013-09-28

    This bug is fixed in 0.92BETA. I think it can be closed.

     
  • Rony Shapiro
    Rony Shapiro
    2013-09-28

    • status: open --> closed