歯ブラシ選びの大事なポイントとは?

いつも適切なご解答をありがとうございます。
表題の件について質問させていただきます。

表題の件、EUC-JPにてサイトを制作しているのですが、
ヘッダとフッタを別htmlファイルにして、
jsファイルでインクルードさせようとしております。

ただ、インクルード用のjQueryを探しているのですが、
EUC-JPでは対応している物が見つかりません。。

jQueryサイトなど、どんな情報でもかまいませんので、
ご存知のことがありましたら教えていただければ大変助かります。

どうぞよろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

jQuery などのライブラリで ajax関連の機能を使う場合、基本読み込み対象のページは utf-8 である必要があります。

utf-8 でない場合は iframe ベースの ajax を使用することで回避できるかと思います。

こちら↓の記事の終わりの方に、$.fn.iframeAjax というメソッドの定義があるので、これを事前に定義しておき..
http://d.hatena.ne.jp/cyokodog/20090616/iframe01

html に 取得したコンテンツを格納する div 要素を以下のように書いておき..
<div id="result"></div>

下記処理を実行すればできるかと思いますが、いかかでしょう?
jQuery(function($){
var dummy = $('<a href="読み込みたいhtml">dummy</a>').appendTo('body');
dummy.iframeAjax(function(doc){
$('#result').html(doc.find('body').html());
});
setTimeout(function(){
dummy.click();
setTimeout(function(){
dummy.remove();
},100);
},0);
});

ちなみに私の会社でも諸事情で Shift_JISベースのhtmlしか使えない環境があるので、上記の方法と同様の原理のプラグインを作って ajax を実現させています(IE8でも動いてます)

参考URL:http://d.hatena.ne.jp/cyokodog/20090616/iframe01
    • good
    • 0
この回答へのお礼

おおお、なるほど!
参考になりました><
ありがとうございます!

お礼日時:2011/06/29 14:26

No. 3です。



object要素(もしくはiframe要素)でヘッダとフッタの内容を表示させるという手がありますね。試してみたところ、この場合はIE8でも文字化けせずに表示されました。

ただし、IE8ではJavascriptを使って追加されたobject要素は表示されないようです。したがって、htmlファイルに書き込む(静的)、あるいは、iframe要素を追加する(動的)のが現実的対応になりそうです。
    • good
    • 0
この回答へのお礼

度々ご回答いただきましてありがとうございます!

そうなんですよね。
IEだけ「また」うまくいかないんですよ。。

最終手段としては静的な対応を考えているのですが、
どこかで実装されていると思うんですよね。
原理的に難しいのでしょうか。。

ありがとうございました!

お礼日時:2010/02/09 16:34

[quote cite="

http://www.w3.org/TR/xml/#charencoding" title="4.3.3 Character Encoding in Entities"]
Each external parsed entity in an XML document may use a different encoding for its characters. All XML processors MUST be able to read entities in both the UTF-8 and UTF-16 encodings. The terms "UTF-8" and "UTF-16" in this specification do not apply to related character encodings, including but not limited to UTF-16BE, UTF-16LE, or CESU-8.

Entities encoded in UTF-16 MUST and entities encoded in UTF-8 MAY begin with the Byte Order Mark described by Annex H of [ISO/IEC 10646:2000], section 16.8 of [Unicode] (the ZERO WIDTH NO-BREAK SPACE character, #xFEFF). This is an encoding signature, not part of either the markup or the character data of the XML document. XML processors MUST be able to use this character to differentiate between UTF-8 and UTF-16 encoded documents.

In the document entity, the encoding declaration is part of the XML declaration. The EncName is the name of the encoding used.

In an encoding declaration, the values " UTF-8 ", " UTF-16 ", " ISO-10646-UCS-2 ", and " ISO-10646-UCS-4 " SHOULD be used for the various encodings and transformations of Unicode / ISO/IEC 10646, the values " ISO-8859-1 ", " ISO-8859-2 ", ... " ISO-8859- n " (where n is the part number) SHOULD be used for the parts of ISO 8859, and the values " ISO-2022-JP ", " Shift_JIS ", and " EUC-JP " SHOULD be used for the various encoded forms of JIS X-0208-1997. It is RECOMMENDED that character encodings registered (as charsets) with the Internet Assigned Numbers Authority [IANA-CHARSETS], ..

In the absence of information provided by an external transport protocol (e.g. HTTP or MIME), it is a fatal error for an entity including an encoding declaration to be presented to the XML processor in an encoding other than that named in the declaration, or for an entity which begins with neither a Byte Order Mark nor an encoding declaration to use an encoding other than UTF-8.
[/quote]

XML を読み込むプロセッサは、UTF-8 又は、UTF-16 を解釈できなければならない。
XML プロセッサは、BOM (0xFEFF) をもって、UTF-8 と UTF-16 を判別する。
(周知のことと思いますが)XML 宣言で"Shift_JIS", and " EUC-JP" 等々が指定された場合は、再読み込みされる。

HTTP 又は MIME が送られなかった場合、プロセッサにとって致命的なエラーです。(仮に宣言なしのプレーンテキストを送った場合、エラーとして扱われる。実際のところ、振る舞いは環境によりけりで、解釈したり化けたりといろいろなところに書いてあると思います)

厳密に実装されてるかどうかは、環境によると思いますが、

不安な場合は、何らかの形に変換(URL エンコード, Base64)しておけばわずらわしいことは考えなくてすみます。

参考URL:http://www.kanzaki.com/docs/sw/http-header.html
    • good
    • 0
この回答へのお礼

なるほど。。
ご指摘いただいた点などを確認いたしました。

>HTTP 又は MIME が送られなかった場合

とお書きになっていますが、
こちらの付帯はどのようにすればよいものでしょうか。

XML宣言しても上手くいかなかったもので。。

よろしければご解答いただければ大変助かります!
どうぞよろしくお願いいたします。

お礼日時:2010/02/09 17:00

以下の3つのファイル(main.html, utf.html, euc.html)を使って(ローカルで)テストしてみました。

それぞれのファイルはEUC-JP, UTF-8, EUC-JPで保存し、それぞれ単独では文字化けなしに表示されることを確認しました。ブラウザはIE8, Firefox3, Safari4, Opera10 (すべてWindows版) です。

結果は、IE8だけがEUC-JPファイルを読み込む部分で文字化けを起こしました。(.load()ではなく、$.ajax()を使うとまた少し結果が異なりますが、いずれにせよIE8は正しく表示できません。)

IE8は、.load()で読み込むファイルは、(ローカルでは)常にUTF-8であるとして解釈するのでしょうね。つまりは、サーバからファイルを送り出す時のヘッダで文字コードを指定しない限り、jQueryでどうにかなる問題ではなさそうです。

もうひとつの解決法は、全てのファイルをUTF-8で保存することでしょうか・・・。


main.html
--
<?xml version="1.0" encoding="EUC-JP"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
<title>test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4. … type="text/javascript"></script>
<script>
$(function(){
$('#utf').load("utf.html");
$('#euc').load("euc.html");
});
</script>
</head>

<body>
<div id="utf">utf</div>
<div id="euc">euc</div>
</body>

</html>
--


utf.html
--
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>utf</title>
</head>

<body>
<p>これはUTF-8のファイルです。</p>
</body>

</html>
--


euc.html
--
<?xml version="1.0" encoding="EUC-JP"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
<title>euc</title>
</head>

<body>
<p>これはEUC-JPのファイルです。</p>
</body>

</html>
--
    • good
    • 0
この回答へのお礼

丁寧にご回答いただきまして誠にありがとうございます!

いただいたとおりに試してみましたところ、
やはりIEのみ上手く表示が出来ませんでした。

EUCの文字コードでのインクルードはやはり難しいのでしょうか。
3年前くらいには割りとあったような印象があるのですが。。

ありがとうございました!
とても参考になりました!

お礼日時:2010/02/09 00:32

jQuery で、というのはよくわかりませんが、、、jQuery に日本語が埋め込まれてるわけじゃないので文字コードは関係ないと思いますが、



response(Text|XML) の話でしょう。(もしくは内部で、意識せずに使ってる)

手元の環境(IE5.5~IE8, Firefox3, Opera, Safari)だけですが、ヘッダを適切に送信してやれば特に問題ないみたいですね。

ヘッダを送信しないということは、HTML で meta を指定しないのと同じ、
受け側は文字コードを知る手立てがないので、文字化けも起こるでしょう。

# ヘッダを送信しても、変換されない環境の情報は知りたいですね。
    • good
    • 0
この回答へのお礼

おお、ご回答ありがとうございます!
こちらをヒントに検索してみたのですが、
よく分かりませんでした。。

>手元の環境(IE5.5~IE8, Firefox3, Opera, Safari)だけですが、ヘッダを適切に送信してやれば特に問題ないみたいですね。

こちらの方法や、それが分かるようなサイトがありましたら、
簡単にでもご教授いただけませんでしょうか。。

どうぞよろしくお願いいたします!

お礼日時:2010/02/08 16:11

「jQuery euc」でぐぐれば


幸せになれると思う。
    • good
    • 0
この回答へのお礼

幸せになれませんでした;;

お礼日時:2010/02/08 16:06

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qcssで「下よせ」ってどうやっていますか?

フロートのレフト、ライトはいいとして、

あるボックス要素内(A)に異なるボックス要素(B)をいれます。
この(B)を(A)の一番そこにはりつかせたい時にどうすれば
最もよいのでしょうか?

いいアイデアをご教授ください。

Aベストアンサー

こんなのはどうかな?

position: absolute;
bottom: 0px;

Qtableのcellpadding="0" cellspacing="0"をCSSで

tableのcellpadding="0" cellspacing="0"をCSSで設定する方法を検索したところ、
border-collapse:collapse;
border-spacing:0;
というアドバイスが記載されていました。
実際に使ってみたのですが、
どうしてもセル余白とセル間隔が発生してしまいます。
どうしたらよいですか。

Aベストアンサー

border-spacingはborder-collapseの値がseparateのときしか有効にならないそうです。
http://www.htmq.com/style/border-spacing.shtml

サンプルが
http://www.htmq.com/style/border-collapse.shtml
にあるので参考にしてください。

# それにしてもこんなプロパティがあるとは知らなかった…

参考URL:http://www.htmq.com/style/border-spacing.shtml

Qタグのテキストを取得

jqueryを使っています。

$('a');を使用しページ内のaタグを全て抜き出すと
hrefの属性値が表示されてしまい、取り出したい<a>タグに
囲まれたテキストを取得することが出来ません。

<a href="http://yahoo.co.jp">Yahoo!</a>
<a href="http://google.co.jp">Google</a>

取り出したい内容は「Yahoo!」及び「Google」のテキスト部分です。
恐らく簡単な内容だとは思いますがご教授お願い出来ますでしょうか?

Aベストアンサー

アンカーに挟まれるのは必ずしもテキストとは限りません。
javascriptで普通にとるならこんなやりかたもできます。

<script>
function check(){
var a=document.getElementsByTagName("a");
for(var i=0;i<a.length;i++){
var n=a[i].firstChild;
while(n){
if(n.nodeName=="#text") alert(n.nodeValue);
n=n.nextSibling;
}
}
}
</script>
<a href="http://yahoo.co.jp">Yahoo!<img src="1.jpg">Yohaa!</a>
<a href="http://google.co.jp">Google</a>

<input type="button" value="check" onclick="check()" />

QAjaxでJSONを受信すると、文字化けする

お世話になっております。
ajaxでJSONを受信して文字列に変換すると、日本語部分のみ文字化け("?"に変換)されてしまいます。色々と調べているのですが原因が分からず、恐れ入りますがご教示のほどお願い致します。

尚、日本語部分のメッセージには個別に設定したBean Validationのアノテーションのメッセージが
入ります。

$.ajax({
type: 'GET',
url: url,
dataType: 'json',
data: params,
contentType: "application/json; charset=utf-8"
})
.done(function(params, dataType){
alert($.stringify(params));
}



---alert($.stringify(params))の内容---
{"contents":[{"id":"a","message":"123abc???"}}
(送信元では【"message":"123abcあいう"】と設定)

Aベストアンサー

送信側の文字コードが間違えているとかは?

Q独自ドメインからどこのレンタルサーバーを使用してるか調べる方法

独自ドメイン(www.好きな名前.com等)からどこのレンタルサーバーを使用してるか調べる方法を教えて下さい。
またレンタルサーバー専用会社なのか大手プロバイダのレンタルサービスを使用してるかを調べる方法をできれば具体的に教えて下さい。

Aベストアンサー

.comや.orgなどならば http://www.whois.sc/
でドメイン名を入れて検索すると、
その結果表示の中の IP location という項目に
会社名がでます。

.jpならば コマンドプロンプトで"ping サーバ名"で
IPアドレスを取得、次に http://www.nic.ad.jp/
下部左の部分にそのIPアドレスを入れて検索すると
会社名がでます。

でドメインを入れて

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

Qhtmlのfileタグに自動で値を入れる方法

htmlのタグでいって
<input type="file">を用いてファイルをサーバーにアップロードしたいと思っています。で、このとき、ファイル名は任意に選べるのではなく固定で送信したいと思っています。

すなわち、HTMLを読み込んだ時点で、fileのテキストボックスにファイルパスが埋め込まれているか、JavaScriptで、ファイルパスを自動入力するようにしたいと思っています。

最終的には、form内のオブジェクトをすべて非表示にし、onload時にsubmitするような形にしたいと思っています。いろいろ事情があって苦肉の策になっています…。

とりあえず(だめだとは思っていたのですが)
<input type="file" value="ファイルパス" name="filepath">
と直書きにしてみたり
document.all.filepath.value = "ファイルパス";
などとしてみたりしましたがだめでした…。
W3C勧告の使用上はvalueでファイルパスを指定できるようになっているようなのですが、現在の一般的なブラウザでは禁止されているようですね。

このような場合、何らかの方法でfileにファイルパスを自動入力することはできますでしょうか?
もしできない場合、何らかの方法で実現する方法はありますでしょうか?よろしくお願いします。

ちなみに実現できればいい環境は
WinXP環境のIE6です。言語はクライアント言語はJavaScriptのみで、という条件付です。
できないかもしれないのですが、こういうのって必要になるときもあるよなーなどと思っており、もしかしたら解決方法があるかもしれないと思い質問しました。よろしくお願いします。

htmlのタグでいって
<input type="file">を用いてファイルをサーバーにアップロードしたいと思っています。で、このとき、ファイル名は任意に選べるのではなく固定で送信したいと思っています。

すなわち、HTMLを読み込んだ時点で、fileのテキストボックスにファイルパスが埋め込まれているか、JavaScriptで、ファイルパスを自動入力するようにしたいと思っています。

最終的には、form内のオブジェクトをすべて非表示にし、onload時にsubmitするような形にしたいと思っています。いろいろ事情があって苦肉...続きを読む

Aベストアンサー

やっぱ無理じゃないでしょうか。
なにか裏ワザ的な方法で一時的にできたとしても、いつか直されるかもしれないのでおいそれとは使えないし。

>W3C勧告の使用上はvalueでファイルパスを指定できるようになっている
→参考URL 「ユーザが明示的に送信を求めたファイル以外のものは送ってはいけない」とあります。

参考URL:http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/appendix/notes.html#forms-security

Q別ファイルのfunctionの読み込み方

こんにちは
外部ファイル hello.js
-----------------------------
function aisatsu(){
var aa="hello"
}
-----------------------------
というファイルが存在した時にjikkou.htmlでaaの値、”hello”を呼び込みたい場合はどう記述すればよいのでしょうか?htmlのなかでaisatsu()をどこに記述していいのか分かりません。どうか教えてください。ただ、hello.jsのほうは実際の記述を簡略化したものであるのでそちらのほうはいじれません。

宜しくお願いします。

必要ないかもしれませんが、念のために私が最初に書いたhtmlの文です(もちろん実行できませんでした)
------------------------------------
<html>
<script language="javascript" src="hello.js">
aisatsu(){
document.write(aa);
}
</script></html>
------------------------------------

こんにちは
外部ファイル hello.js
-----------------------------
function aisatsu(){
var aa="hello"
}
-----------------------------
というファイルが存在した時にjikkou.htmlでaaの値、”hello”を呼び込みたい場合はどう記述すればよいのでしょうか?htmlのなかでaisatsu()をどこに記述していいのか分かりません。どうか教えてください。ただ、hello.jsのほうは実際の記述を簡略化したものであるのでそちらのほうはいじれません。

宜しくお願いします。

必要ないかもしれませんが、念のために...続きを読む

Aベストアンサー

function内で「var」をつけて変数を宣言するとfunction外からその変数の内容を取得することができなくなります。(returnで参照することはできます。)
なので変数の内容を取得する場合は「hello.js」の内容を

function aisatsu(){
var aa="hello";
return aa;
}

このように修正し、

<script language="javascript" src="hello.js"></script>
<script language="javascript">
var data=aisatsu();//「aisatsu()」関数の「aa」変数内のデータを引っ張り出す(return aa;)
document.write(data);//書いたり
alert(data);//アラートしたり
window.status=data;//ステータスバーに表示したり・・
</script>

Qjavascriptで文字コード変更

いつもお世話になっております。
今回はjavascriptの文字コードについてお聞きしたいです。

現在、CGIの応答でテキストを受けて、それをjavascriptで変換して表示するというものを作っていますが、この応答に漢字、ひらがななどが入ると文字化けしてしまいます。
調べてみると、CGIの応答はshift-jisで返しているのですが、javascriptはUTF-8しか扱えないと書いてありました。

なんとか応答のCGIはShift-Jisを送り、javascriptでうまく表示できるようにしたいのですが、方法はないでしょうか?
ご教授願います。

Aベストアンサー

というか、現在のJavaScriptでは定数の文字列はエンコードが何で
あっても自動的にUTF-8として処理されてしまうのでURLエンコード
したりするとUTF-8のエンコードになってしまいますけど、CGIから
JavaScriptに対して渡した文字列はSJISでも問題なく処理できるはず
です。
(ただし、SJISの文字列をURLエンコードしたものをJavaScriptに渡した
場合、そのままではJavaScriptで処理できません)
Ajaxなどでも、普通にSJIS使えますし。
それでも、UTF-8よりも不具合がでやすかったりいろいろ問題もあり
ますけど。

多分、それは処理の仕方が悪いかなんかだと思うのでソース書いた
方がいいかもしれません。
あとは、OSやブラウザなどの環境も必要です。


人気Q&Aランキング