- - PR -
外部JavaScriptファイル使用で文字化け
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-13 21:06
お世話になります。
aspx内で、外部JavaScriptファイル(S-JIS)を使用すると、 JavaScriptの関数内で文字化けが発生してしまいます。 回避策などありませんでしょうか?よろしくお願いします。 [例] 以下のソースでtestFunc()を実行すると、(????)とメッセージが表示されます。 ・aspx側 <script language='Javascript' src='../TestScript.js'> ・script側 function testFunc() { alert('(漢字)'); } ■環境 Windows Server 2003 IIS 6.0 VisualStudio.NET 2003 Webアプリ(C#) | ||||
|
投稿日時: 2006-06-13 22:51
TestScript.js ファイルの文字コードが変だから、かな?
_________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-06-14 09:17
aspx、jsともに、S-JISで保存されているのですが、
保存する時の文字コードとは別に、 ファイル内に何か明示的に使用文字コードを書かなければならないのでしょうか。 | ||||
|
投稿日時: 2006-06-14 11:10
ファイル内ではなくて、HTTPのContent-Typeヘッダが「Content-Type: text/javascript; charset="Shift_JIS"」になっている必要があります。具体的なことは知りませんが、IISの設定で何とかします。 | ||||
|
投稿日時: 2006-06-14 11:18
ASP.NETはデフォルトではutf-8でHTMLを作成してブラウザに返します。
HTMLのほうはutf-8なのにjsファイルがShift_JISになっているため文字化けが起きているのでしょう。 どちらかの文字コードを変換する必要があると思います。 ASP.NETで作成されるHTMLの文字コードを変換するには、web.configに以下の設定を 記述します。 <globalization requestEncoding="Shift_JIS" responseEncoding="Shift_JIS"/> | ||||
|
投稿日時: 2006-06-14 11:21
スクリプトの文字コードについては、以前は全然打つ手が無かった(ヘッダで文字コードを送っても、IEだとSJIS以外受け付けない等あった)のですが、
最近のブラウザだとscriptタグの中にcharsetをつけるだけで行けるみたいですよ。 (確か、ここの過去ログであった気がする。) (でも、やっぱりブラウザの実装に拠るから、出来れば日本語のメッセージは別にしておくのがいいかも。) | ||||
|
投稿日時: 2006-06-14 13:05
ここにこんなログがあります。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15582&forum=7&7 | ||||
|
投稿日時: 2006-06-14 13:24
皆様、ありがとうございました。
どっとねっとふぁんさん、冬寂さんの方法でできました。 冬寂さんの方法だと、「'script'の属性'charset'が見つかりません」と開発環境上 で警告が出ますが、動作に問題はなさそうです。 |
1