In the simple ja_JP.sjis message file $ /bin/echo -e "1 \224\\" >/tmp/tt $ hdump /tmp/tt 00000000 31 20 94 5C 0A 1 .\. gencat gives an error $ LANG=ja_JP.sjis gencat --new /tmp/tt.out /tmp/tt /tmp/tt:1: invalid character: message ignored This input file contains a single message numbered 1 containing the SJIS character represented by the double byte sequence 0x94 0x5C The 0x5C seems to be treated as an ASCII backslash which is a continutation char in gencat
You cannot use SJIS as a locale, it is not ASCII-safe.