PHPの「mb_convert_encoding($str, 'Shift_JIS', 'UTF-8')」と同じことがしたいです。
私は今、PHPで出来たシステムをnode.jsに移行することを検証中です。
node.jsというモダンな開発環境なのに、ガラケー用サイトの対応が必要でして、
どうしてもShift_JISの文字コードでHTMLページを表示しなければいけません。
(User Agentで判別して、DoCoMoとかならガラケー用ページのHTMLテンプレートを表示する感じです)
ネットで調べると、SJISその他からUTF-8に変換するものはよく見かけますが、
その逆で、UTF-8からSJISに変換するという記事を全然見かけません。
Node.jsではそういったことが出来ないのですか?
やり方をご存知の方、ソースコードをご提示いただけませんでしょうか。
もしNode.jsでは対応できないのであれば、
EC2を使うなど、別の方法を考えることにします。
一応、私のソースコードを下記します。
現在は検証中の段階ですので、
ライブラリはICONVやJCONVなど、違うものでも全然構いません。
function encodeTo(unicodeStr, toEncode = 'SJIS') { var ENCODING = require('encoding-japanese'); var availableEncodings = ['UTF16','UTF16BE','UTF16LE','JIS','UTF8','EUCJP','SJIS','UNICODE']; if(availableEncodings.includes(toEncode) === false){ return false; } var unicodeArray = ENCODING.stringToCode(unicodeStr); var utf8Array = ENCODING.convert(unicodeArray, { to: 'UTF8', from : 'UNICODE' }); var sjisArray = ENCODING.convert(unicodeArray, { to: 'SJIS', from : 'UNICODE' }); console.log("unicodeArray: " + ENCODING.detect(unicodeArray)); console.log("utf8Array: " + ENCODING.detect(utf8Array)); console.log("sjisArray: " + ENCODING.detect(sjisArray)); var unicodeStr = ENCODING.codeToString(unicodeArray); var utf8Str = ENCODING.codeToString(utf8Array); var sjisStr = ENCODING.codeToString(sjisArray); console.log("unicodeStr: " + unicodeStr); console.log("utf8Str: " + utf8Str); console.log("sjisStr: " + sjisStr); return sjisStr; }; console.log(encodeTo("あいうえお"));
$ node test.js unicodeArray: UNICODE utf8Array: UTF8 sjisArray: SJIS unicodeStr: あいうえお utf8Str: ã��ã��ã��ã��ã�� sjisStr: � �¢�¤�¦�¨ � �¢�¤�¦�¨
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。