最上位ビットに違いがあることが分かった。 「プログラマのための文字コード技術入門」という2010年に購入した本を引っ張り出して軽く眺めてみた。 JISの8ビット符号にはGR領域とGL領域があり、GR領域を使用する場合には第8ビット(最上位ビット)に1をセットして用いるとのこと。 変換できないので「?」にして戻した後、第8ビットに1をセットする変換がされたことにより「ソ」になってしまったのではないかと推測している。 逆疑問符[¿」は「ソ」と同じコードであり、こちらはLatin-1の文字コードが使われたようだ。 ちなみに文字化けについては、環境変数に「NLS_LANG=JAPANESE_JAPAN.JA16SJISTILDE」を追加することで解消された。 「ソ」よる文字化け Shift-JISは半角文字と全角文字を表せますが、1文字が何バイトなのかが固定されていないのです。なので「ソ」など2バ