Re: BUG #18735: Specific multibyte character in psql file path command parameter for Windows
Koichi Suzuki <koichi.dbms@gmail.com>
From: Koichi Suzuki <koichi.dbms@gmail.com>
To: Tatsuo Ishii <ishii@postgresql.org>
Cc: tgl@sss.pgh.pa.us, pgsql-bugs@lists.postgresql.org
Date: 2024-12-06T05:26:34Z
Lists: pgsql-bugs
2024年12月6日(金) 14:21 Tatsuo Ishii <ishii@postgresql.org>: > > I don't believe Shift-JIS uses '/' as part of multibyte characters, > > Correct. > > > so it should be sufficient to consider '\'. > > Agreed. > > > BTW, according to wikipedia[1], backslash is not even part of the > > Shift-JIS character set: > > > > The single-byte characters 0x00 to 0x7F match the ASCII encoding, > > except for a yen sign (U+00A5) at 0x5C and an overline (U+203E) at > > 0x7E in place of the ASCII character set's backslash and tilde > > respectively (these deviations from ASCII align with JIS X > > 0201). The single-byte characters from 0xA1 to 0xDF map to the > > half-width katakana characters found in JIS X 0201. > > > > For double-byte characters, the first byte is always in the range > > 0x81 to 0x9F or the range 0xE0 to 0xEF (these ranges are > > unassigned in JIS X 0201). If the first byte is odd, the second > > byte must be in the range 0x40 to 0x9E (but cannot be 0x7F); if > > the first byte is even, the second byte must in the range 0x9F to > > 0xFC. > > > > This might mean that it'd be okay to just skip the backslash-to-slash > > conversion loops altogether if we think the encoding is Shift-JIS. > > I suggest to not do so because majority of Shift-JIS users treat 0x5C > as a backslash. They understand that a 0x5C means a backslash in > Shift-JIS files if the files are for programming (source code) or for > the technical documentations and so on. > Better way is to treat 'backslash' byte value in the latter byte of SJIS-encoded character as is, not treat this byte as escape character. I'm not sure if we can fix src/fe_utils/psqlscan.l and/or src/bin/psql/psqlscanslash.l for this. Needs some more investigqation. > Best reagards, > -- > Tatsuo Ishii > SRA OSS K.K. > English: http://www.sraoss.co.jp/index_en/ > Japanese:http://www.sraoss.co.jp All the best and thanks to all the kind inputs. --- Koichi Suzuki https://www.linkedin.com/in/koichidbms
Commits
-
Avoid breaking SJIS encoding while de-backslashing Windows paths.
- b17e3970c1ac 15.11 landed
- 998c4fc7c2c8 16.7 landed
- 98df8bace8a3 13.19 landed
- 6cddecdfb00b 18.0 landed
- 54f9afea7a7d 14.16 landed
- 0b713b94b3b0 17.3 landed