dannyedel / dspdfviewer

Dual-Screen PDF Viewer for latex-beamer
http://dspdfviewer.danny-edel.de
GNU General Public License v2.0
219 stars 29 forks source link

Linux: German Umlauts printed not as UTF-8 on the console #108

Closed dannyedel closed 8 years ago

dannyedel commented 8 years ago

Running a command like this on Linux console creates invalid UTF-8:

LANGUAGE=de LC_ALL=de_DE.UTF-8 ./dspdfviewer --help | tail -n5
        Dr�cken Sie F1 oder ? w�hrend der Programmausf�hrung, um einen
        kurzen �berblick �ber die verf�gbaren Tastenkombinationen zu
        erhalten.
        Bitte lesen Sie die Manpage (man dspdfviewer), um die vollst�ndige
        Liste zu erhalten.

Looking at a hexdump, it does output 0xFC (which is the correct unicode codepoint for ü), but the correct UTF-8 formatting would be 0xC3 0xBC. I expect this is an issue with the conversion from/to std::string to integrate boost_program_options, so fix this before v1.14 gets out.

LANGUAGE=de LC_ALL=de_DE.UTF-8 ./dspdfviewer --help | tail -n5 | hexdump -C
00000000  09 44 72 fc 63 6b 65 6e  20 53 69 65 20 46 31 20  |.Dr.cken Sie F1 |
00000010  6f 64 65 72 20 3f 20 77  e4 68 72 65 6e 64 20 64  |oder ? w.hrend d|
00000020  65 72 20 50 72 6f 67 72  61 6d 6d 61 75 73 66 fc  |er Programmausf.|
00000030  68 72 75 6e 67 2c 20 75  6d 20 65 69 6e 65 6e 0a  |hrung, um einen.|
00000040  09 6b 75 72 7a 65 6e 20  dc 62 65 72 62 6c 69 63  |.kurzen .berblic|
00000050  6b 20 fc 62 65 72 20 64  69 65 20 76 65 72 66 fc  |k .ber die verf.|
00000060  67 62 61 72 65 6e 20 54  61 73 74 65 6e 6b 6f 6d  |gbaren Tastenkom|
00000070  62 69 6e 61 74 69 6f 6e  65 6e 20 7a 75 0a 09 65  |binationen zu..e|
00000080  72 68 61 6c 74 65 6e 2e  0a 09 42 69 74 74 65 20  |rhalten...Bitte |
00000090  6c 65 73 65 6e 20 53 69  65 20 64 69 65 20 4d 61  |lesen Sie die Ma|
000000a0  6e 70 61 67 65 20 28 6d  61 6e 20 64 73 70 64 66  |npage (man dspdf|
000000b0  76 69 65 77 65 72 29 2c  20 75 6d 20 64 69 65 20  |viewer), um die |
000000c0  76 6f 6c 6c 73 74 e4 6e  64 69 67 65 0a 09 4c 69  |vollst.ndige..Li|
000000d0  73 74 65 20 7a 75 20 65  72 68 61 6c 74 65 6e 2e  |ste zu erhalten.|
000000e0  0a                                                |.|
000000e1