这个问题,是由于Shift-JIS和MS932对这些字的unicode映射不同造成的。
比如: ~ SJIS:U+301C MS932:U+FF5E
在一些相关的网站上可以看到一些总结,这些字符如下
~ SJIS:U+301C MS932:U+FF5E
∥ SJIS:U+2016 MS932:U+2225
- SJIS:U+2212 MS932:U+FF0D
¢ SJIS:U+00A2 MS932:U+FFE0
£ SJIS:U+00A3 MS932:U+FFE1
¬ SJIS:U+00AC MS932:U+FFE2
至于验证方法,可以到unicode.org上查找相关的mapping文件,进行比较。
对于本问题,可以比较SHIFTJIS.TXT和CP932.TXT
没有试过,不过可以借鉴。