iccubeiccube-reporting

icCube Reporting : Cannot save Report with accent


When saving a report with accent "Dépenses", the generated filename is having some weird ? characters and then the report cannot be opened/deleted. Neither from the reporting nor from the Docs application.


Solution

  • Report names are eventually mapped to file names. It looks like there is a bug with the old JAVA IO API when manipulating file names.

    It seems this issue is occurring when the JAVA property sun.jun.encoding has a weird value (this can be checked in the server UI interface): for example something like: ANSI_X3.4-168. icCube is expecting UTF-8

    On a Linux machine, you can check the locale setup as following. In a shell with the user launching icCube:

    # locale
    LANG=en_US.UTF-8
    LANGUAGE=
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC=en_GB.UTF-8
    LC_TIME=en_GB.UTF-8
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY=en_GB.UTF-8
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER=en_GB.UTF-8
    LC_NAME=en_GB.UTF-8
    LC_ADDRESS=
    LC_TELEPHONE=en_GB.UTF-8
    LC_MEASUREMENT=en_GB.UTF-8
    LC_IDENTIFICATION=en_GB.UTF-8
    LC_ALL=
    

    Then enter the following to check the available locales:

    # locale -a
    C
    C.UTF-8
    en_US.utf8
    POSIX
    

    As you can see the en_GB locale mentioned in the first command is missing and it seems this confuses the JVM. So you can generate the missing locale by commenting out the corresponding locale in the file:

    /etc/locale.gen
    

    and then regenerate the locales:

    # locale-gen
    

    then you can check:

    # locale -a
    C
    C.UTF-8
    en_GB.utf8
    en_US.utf8
    POSIX
    

    Now when restarting icCube, the sun.jnu.encoding should be UTF-8 and you should be able to have reports with accents.