質問: ''; postData += ''; postData+=''+hoge1 +''; postData+=''+hoge2 +''; postData+='' + btoa(unescape(encodeURIComponent(itemName))) + ''; postData += '' + spsHashcode + ''; (外部システムにpostDataをPOST) ```
回答: (問題解決を確認できないので、当て推量の回答となります) 「GitHubのencoding.js」というのが これだとすると、`itemName = Encoding.convert(itemName, 'SJIS');` の結果、`itemName` はシフトJISのバイト列を U+0000 〜 U+00FF で表現した文字列になるようです。それを ``` btoa(unescape(encodeURIComponent(itemName))) ``` すると、`encodeURIComponent()` は `itemName` を無理やりUTF-8に再エンコードしてパーセントエンコーディングします。`unescape()` はそれを ISO-8859-1 としてパーセントデコードしています。結果、非アスキー文字は壊れます。 おそらく、 ``` btoa(itemName) ``` だけで目的の「シフトJISをBase64した文字列」になると思われます。