質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

解決済

3回答

15748閲覧

Node.jsでShift-JISで受信したテキストをUTF-8に変換する方法

p1ch_jp

総合スコア9

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

2クリップ

投稿2015/02/23 19:03

Node.js + Express4で開発をしています。

サーバーにPOSTメソッドでShift-JISのテキストが送られてくるのをUTF-8に変換したいと考えています。

lang

1var express = require('express'); 2var Iconv = require('iconv').Iconv; 3var router = express.Router(); 4 5router.post('/new', function(req, res) { 6 7 var iconv, text; 8 var buffer = new Buffer(req.body.text, 'binary'); 9 10 var iconv = new Iconv('Shift-JIS', 'UTF-8//TRANSLIT//IGNORE'); 11 text = iconv.convert(buffer).toString(); 12 13 console.log(text); 14 15} 16 17module.exports = router;

この様なコードで変換できるかと思ったのですが、ためしに「ほげほげ」というテキストをPOSTで送るとconsole.logではBBという文字列が表示されてしまいます。(うまく変換できていない)

どなたか、これの解決方法をご存知の方いらっしゃいませんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

参考情報:

投稿2015/02/23 21:46

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

p1ch_jp

2015/02/24 10:14

参考情報ありがとうございます。 上記を参考にしてみましたが解決には至りませんでした...
guest

0

ベストアンサー

以下が参考になりました。

app.jsのbodyParserのurlencodedオプションの指定を以下の様にします。

lang

1app.use(bodyParser.urlencoded({ extended: true }));

http://www.drk7.jp/MT/archives/001324.html
より、ecl_new.jsを保存して、これをapp.jsの先頭で

lang

1var fs=require('fs'); 2eval(fs.readFileSync("./ecl_new.js",{encoding:"utf8"}));

として読み込ませて、

lang

1router.post('/new', function(req, res) { 2 var text = UnescapeSJIS(req.body.text); 3 4 console.log(text); 5 6}

とすれば、文字化けが解消すると思います。

投稿2015/04/17 08:13

kjunichi

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こちらのサンプルでは、'Shift_JIS'とアンダースコアになってました。

投稿2015/02/23 19:35

shinosan

総合スコア209

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

p1ch_jp

2015/02/24 10:15

回答ありがとうございます。 取り急ぎShift-JISからShift_JISに変更してみましたが結果は代わりませんでした。 Shift-JISの表記の問題では無さそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問