https://bugs.winehq.org/show_bug.cgi?id=57540
Bug ID: 57540 Summary: unrecognized charset 'SHIFT_JIS' when running Wine with LC_ALL=ja_JP.SJIS Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: zsolt_vadasz@protonmail.com Distribution: ---
Some older visual novels require using the Japanese Shift JIS locale, which has to be generated via `localedef` (at least on Linux Mint and Artix Linux). I generated mine as such (following this[0] Wine forum post): ``` localedef -c -f SHIFT_JIS -i ja_JP ja_JP.SJIS ```
But when running the game's installer (after logging out and in for the changes to take effect), Wine gives an unrecognized charset error: ``` $ LC_ALL="ja_JP.SJIS" wine ./Setup.exe err:environ:init_unix_codepage unrecognized charset 'SHIFT_JIS' ```
This is because in dlls/ntdll/unix/env.c, the `charset_names` array's entry for Shift JIS is wrong.
As can be seen in the command, and in $I18NPATH/charmaps (/usr/share/i18n/charmaps on my system), The gzip-compressed character map file is called `SHIFT_JIS.gz` instead of `SJIS.gz`.
This is solved by changing the `name` from "SJIS" to "SHIFTJIS" in the array element.
Tested on 448fcbc0c60d7228ed52f1f5d90f62be0a58289a
[0]: https://forum.winehq.org/viewtopic.php?p=110966&sid=e1b934de7663eedec41e...