すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

Javascriptで文字の変換はできますか?
サイトを作っています。
WEBページの一部分だけで、シフトジスの文字をUTF8に変換したいです。

GOOGLEで検索したところ、
フォームに入力→ボタンを押す→変換される
というフォームは設置できるみたいなんですが、自分がやりたいのはそうではなく、
HTMLに書いた文字の一部が変換されてWEBページに表示される、というものです。
無料でしょうか?

===補足===
早速回答いただきましてありがとうございます。
htmlタグまで書いていただいてとてもわかりやすいです!

ところでタイミングなんですが、webページを開いたときにはすでに変換されていてほしいんです。ボタンを押さずに。 見た人は「最初からhtmlにこの文字を書いていたんだろうな」とおもうぐらいのタイミングです。

javascritに詳しくないんですが、ボタンを押すなどのアクションがない限り動かないものなんでしょうか?

  • 質問者:W.T
  • 質問日時:2009-05-30 00:13:10
  • 0

並び替え:

こちらのecl.jsは無料で使えます。
http://nurucom-archives.hp.infoseek.co.jp/digital/escape-codec-library.html
あとはEscapeUTF8でUTF-8に変換したものを、DOMでHTMLに書き込めば良いと思います。


どういったタイミングで変換するのか分からないのですが、ボタンを押したタイミングで変換するならこんな感じでしょうか。

<div id="test">あいうえお</div>
<input type="button" value="変換" onclick="Encode()">
<script type="text/javascript"><!--
function Encode(){
var targetNode = document.getElementById('test');
var escapeText = EscapeUTF8(targetNode.firstChild.nodeValue);
var textNode = document.createTextNode(escapeText);
targetNode.removeChild(targetNode.firstChild);
targetNode.appendChild(textNode);
}
// --></script>

===補足===
表示タイミングにやるのであれば、bodyのonloadを使うのが良いと思います。
onloadでEncode()を呼び出すだけです。

<body onload="Encode()">
<div id="test">あいうえお</div>
<body>
<script type="text/javascript"><!--
function Encode(){
var targetNode = document.getElementById('test');
var escapeText = EscapeUTF8(targetNode.firstChild.nodeValue);
var textNode = document.createTextNode(escapeText);
targetNode.removeChild(targetNode.firstChild);
targetNode.appendChild(textNode);
}
// --></script>



ただ、このままだと複数箇所をエンコードするのが大変です。
エンコード処理をfunctionにした方が良いでしょう。
(この辺は工夫次第でどうにでもなると思いますが。)

<body onload="BodyEncode()">
<div id="test1">あいうえお</div>
<div id="test2">かきくけこ</div>
<div id="test3">さしすせそ</div>
<div id="test4">たちつてと</div>
<div id="test5">なにぬねの</div>
<div id="test6">はひふへほ</div>
<body>
<script type="text/javascript"><!--
function BodyEncode(){
// "あいうえお"をUTF-8に変換
Encode('test1');
// "さしすせそ"をUTF-8に変換
Encode('test3');
// "なにぬねの"をUTF-8に変換
Encode('test5');
// "はひふへほ"をUTF-8に変換
Encode('test6');
}

function Encode(elementID){
var targetNode = document.getElementById(elementID);
var escapeText = EscapeUTF8(targetNode.firstChild.nodeValue);
var textNode = document.createTextNode(escapeText);
targetNode.removeChild(targetNode.firstChild);
targetNode.appendChild(textNode);
}
// --></script>

  • 回答者:T_T (質問から2時間後)
  • 0
この回答の満足度
  

関連する質問・相談

Sooda!からのお知らせ

一覧を見る