- PR -

外部JavaScriptファイル使用で文字化け

1
投稿者投稿内容
みっちー
常連さん
会議室デビュー日: 2006/01/06
投稿数: 22
投稿日時: 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#)
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-06-13 22:51
TestScript.js ファイルの文字コードが変だから、かな?
_________________
囚人のジレンマな日々
みっちー
常連さん
会議室デビュー日: 2006/01/06
投稿数: 22
投稿日時: 2006-06-14 09:17
aspx、jsともに、S-JISで保存されているのですが、
保存する時の文字コードとは別に、
ファイル内に何か明示的に使用文字コードを書かなければならないのでしょうか。
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2006-06-14 11:10
引用:

aspx、jsともに、S-JISで保存されているのですが、
保存する時の文字コードとは別に、
ファイル内に何か明示的に使用文字コードを書かなければならないのでしょうか。



ファイル内ではなくて、HTTPのContent-Typeヘッダが「Content-Type: text/javascript; charset="Shift_JIS"」になっている必要があります。具体的なことは知りませんが、IISの設定で何とかします。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 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"/>
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2006-06-14 11:21
スクリプトの文字コードについては、以前は全然打つ手が無かった(ヘッダで文字コードを送っても、IEだとSJIS以外受け付けない等あった)のですが、
最近のブラウザだとscriptタグの中にcharsetをつけるだけで行けるみたいですよ。
(確か、ここの過去ログであった気がする。)

(でも、やっぱりブラウザの実装に拠るから、出来れば日本語のメッセージは別にしておくのがいいかも。)
oracle
常連さん
会議室デビュー日: 2003/12/04
投稿数: 29
お住まい・勤務地: さいたま
投稿日時: 2006-06-14 13:05
ここにこんなログがあります。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15582&forum=7&7
みっちー
常連さん
会議室デビュー日: 2006/01/06
投稿数: 22
投稿日時: 2006-06-14 13:24
皆様、ありがとうございました。
どっとねっとふぁんさん、冬寂さんの方法でできました。
冬寂さんの方法だと、「'script'の属性'charset'が見つかりません」と開発環境上
で警告が出ますが、動作に問題はなさそうです。
1

スキルアップ/キャリアアップ(JOB@IT)