• 締切
  • 困ってます

JavaScriptでの文字列変換

  • 質問No.7648689
  • 閲覧数1949
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 47% (37/78)

表示しているWebページの情報収集をするプログラムを作っています。

情報収集したいWebページを開いて、ブックマークツールバーにあるJavascript関数へのリンクをクリックすると表示しているページの情報(とりあえずは、URLとタイトルだけです。)を取り出してAjaxを使って、PHPプログラムにデータを送るというプログラムを作成中です。

情報収集先のWebページがUTF-8でエンコードされている場合、日本語でもうまく情報を送れるのですが、Shift-JIS等だとタイトルがうまくPHP側に送れません。

サーバー側に送信するときのエンコードはencodeURIComponent関数を使って行っています。
UTF-8のみ対応ということで、困っています。

Javascript側で、Shift-JIS、EUC-JPコードをUTF-8にすることは可能でしょうか?

自分が作成したWebページ以外で使う可能性もあるので、Webページの文字コードを統一することはできません。
また、個人的な事情でPHP側で何とかするというのも避けたいです。

できれば、Javascript上で
1.文字コードの判定
2.Shift-JISもしくはEUC-JPなら、UTF-8に文字コード変換
3.encodeURIComponentでエンコード
という流れを取りたいです。

何かいい方法がありましたら教えてください。
よろしくお願いいたします。

回答 (全2件)

  • 回答No.2

ベストアンサー率 77% (177/228)

JavaScript上では内部的にすべてUNICODEで処理されると思ってました。

Shift_JISの「あいうえお」もUTF-8の「あいうえお」も、
alert(encodeURIComponent(document.title)) するとどちらも
%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A
と表示されます。(Win7+IE9)
ブラウザやOSで違うんですかね?

とりあえず私が自分で設置しているオンラインブックマークも、bookmarklet+PHPでやっていますが、php側では
$title = mb_convert_encoding($title, "UTF-8", "auto");
で事足りています。
  • 回答No.1

ベストアンサー率 56% (215/379)

ライブラリを作っている方がいらっしゃるので、それを使わせてもらうのはいかがでしょうか。
ブックマークレットだとすると無理そうですが…。
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

ピックアップ

ページ先頭へ