unicodeとcp932とshiftjisの間の変換(JavaScriptで)

cp932のシステムから、Unicodeのシステム(Javaとか、Oracleとか、その他いろいろ)へ入り処理されて
戻ってくるときに、ShiftJISで戻ってくると問題がある字がある。
というのに、WSHでぶち当たり、次のように直した。


var REVERSE_SOLIDUS = 0x5c;
var YEN_SIGN = 0xa5;

var FULL_WIDTH_TILDE = 0xff5e;
var WAVE_DASH = 0x301c;

var PARALLEL_TO = 0x2225;
var DOUBLE_VERTICAL_LINE = 0x2016;

var FULL_WIDTH_HYPHEN_MINUS = 0xff0d;
var MINUS_SIGN = 0x2212;

var FULL_WIDTH_CENT_SIGN = 0xffe0;
var CENT_SIGN = 0xa2;

var FULL_WIDTH_POUND_SIGN = 0xffe1;
var POUND_SIGN = 0xa3;

var FULL_WIDTH_NOT_SIGN = 0xffe2;
var NOT_SIGN = 0xac;

var code = new Array();
code.push([REVERSE_SOLIDUS, YEN_SIGN]);
code.push([FULL_WIDTH_TILDE, WAVE_DASH]);
code.push([PARALLEL_TO, DOUBLE_VERTICAL_LINE]);
code.push([FULL_WIDTH_HYPHEN_MINUS, MINUS_SIGN]);
code.push([FULL_WIDTH_CENT_SIGN, CENT_SIGN]);
code.push([FULL_WIDTH_POUND_SIGN, POUND_SIGN]);
code.push([FULL_WIDTH_NOT_SIGN, NOT_SIGN]);


for(var i=0;i
出力はこういう風になる。


Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

\ 5c 92
\ a5 165
〜 ff5e 65374
? 301c 12316
‖ 2225 8741
? 2016 8214
− ff0d 65293
? 2212 8722
¢ ffe0 65504
¢ a2 162
£ ffe1 65505
£ a3 163
¬ ffe2 65506
¬ ac 172
変換前:\???¢£¬
変換後:\〜‖−¢£¬

?なのは、CP932のみにあり、ShiftJISでは表示できない文字。