🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

HTTPヘッダー

Hypertext Transfer Protocol(HTTP)の中のHTTPヘッダフィールドはHTTPの要求やレスポンスの機能しているパラメーターが含まれます。その要求もしくはレスポンスライン(メッセージの最初の一行)でメッセージヘッダを作ります。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

Q&A

解決済

2回答

15968閲覧

レスポンスヘッダーの Content-Type に文字コードを指定する方法

K_15

総合スコア5

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

HTTPヘッダー

Hypertext Transfer Protocol(HTTP)の中のHTTPヘッダフィールドはHTTPの要求やレスポンスの機能しているパラメーターが含まれます。その要求もしくはレスポンスライン(メッセージの最初の一行)でメッセージヘッダを作ります。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

0グッド

1クリップ

投稿2019/12/06 13:35

編集2019/12/06 14:00

⬛︎(概要) ※やりたいこと
respose-header
content-type
text/htmlのcharasetを-utf-8に指定する。

前)text/html

後)text/html;charset=utf-8

⬛︎(環境)
IIS 8.5
静的なwebサイト

⬛︎(対応したこと)
・MIMEの変更 
text/html→ text/html;charset=utf-8
・アプリケーションプールの再起動 IIS
・エンコーディングの指定 
<globalization
fileEncoding="utf-8"
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
⬛︎その他
・試せることは試して万策尽きた感じです。
・同環境の別アプリでaspxファイルがあるのですがそちらはtext/html;charset=utf-8になってました。※なお、そのアプリ内のhtmlファイルはtext/htmlのまま
・参考URL
https://www.websec-room.com/2013/03/02/342

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/12/06 13:49

なにをしようとしてる? どういう不具合があるんでしょうか
退会済みユーザー

退会済みユーザー

2019/12/06 23:36 編集

URL Rewtite Module 2 は使えますか? 無ければダウンロードしてインストールしてください。話はそれからということで。
K_15

2019/12/06 23:25 編集

会社のサーバなので、インストールは難しいです。。※そのソフトウェアはIISにアドオンでインストールする感じでしょうか?
y_waiwai

2019/12/06 23:27

で、なにができないってはなしなの?
退会済みユーザー

退会済みユーザー

2019/12/06 23:30

URL Rewrite Module は Microsoft 製品で、ひょっとしたらすでにインストール済みかも。IIS Manager で調べれば分かります。それがなければお手上げです。
退会済みユーザー

退会済みユーザー

2019/12/06 23:35

URL Rewrite Module がダメなら meta タグに設定しては?
K_15

2019/12/07 00:37 編集

インストールされていたとしたらどのような手順になりますか? ※metaタグは記述していますが反映されなです。 <meta charset="UTF-8">
退会済みユーザー

退会済みユーザー

2019/12/07 00:58 編集

インストールの有無を先に調べてください。無ければ書いても無駄になるので。 meta タグに書いても応答ヘッダが変わるわけではありません。ブラウザに使っているのが UTF-8 であることを認識させるのに同じ効果があるはずということです。(優先順位は応答ヘッダ―の方が高いそうですが)
K_15

2019/12/09 08:04

インストールされていました。 ※IISで「URL 書き換え」の項目がありました。
退会済みユーザー

退会済みユーザー

2019/12/09 08:35 編集

ではそれを使ってください。不明点があれば聞いてください。 ただ、細かい設定 (例えば特定のフォルダのみ適用するとか) が不要で、サイト全部でその設定を適用すればよければ、他の回答者の方の提案のように MIME マッピングで設定した方が簡単かもしれません。
K_15

2019/12/09 08:45

取り急ぎ、継承された規則があったため、削除しましたが変化ありませんでした。設定方法についてご教授いただけますと幸いです。MIMEについては設定しているのですが、反映されません。
退会済みユーザー

退会済みユーザー

2019/12/09 09:10 編集

今出先なので帰ってから返答します。帰るのは遅くなると思います(明日になるかも)。それまでにどこが分からないか、私の回答のコメント欄に書いておくようお願いします。
K_15

2019/12/09 11:15

すみません。疑問点の洗い出しにつきまして、私も明日以降になりそうです。お手数をおかけしますが、よろしくお願いします。
guest

回答2

0

静的ファイルのContent-Typeであれば、質問文に書かれている「MIMEの種類」にて設定できるはずです。
試しにWindows 8.1上のIIS8.5で以下のように、.htmと.htmlの設定をしてみました。拡張子によって設定が変わる(変えられる)ことに注意してください。

MIMEの種類の設定

この状態で、index.htmにアクセスした場合のレスポンスヘッダは下記となりました。

HTTP

1HTTP/1.1 200 OK 2Content-Type: text/html; charset=UTF-8 3Last-Modified: Sat, 07 Dec 2019 03:32:19 GMT 4Accept-Ranges: bytes 5ETag: "af161deeaeacd51:0" 6Server: Microsoft-IIS/8.5 7Date: Sat, 07 Dec 2019 03:39:27 GMT 8Content-Length: 29

デフォルトでは、Content-Type: text/html でしたので、MIMEの種類の変更にて変更できたことになります。
もう一度拡張子も含めて確認されたらどうでしょうか。

上記はプレーンなIISでの話ですが、SurferOnWwwさんが指摘されているURL Rewrite Module等でContent-Typeを上書きしている可能性はありえます。そのケースについては追加の情報をいただかないと、第三者にはわからないです。

投稿2019/12/07 03:47

ockeghem

総合スコア11705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

上の質問へのコメントで、

インストールの有無を先に調べてください。無ければ書いても無駄になるので。

と書きましたが、自分のブログに URL Rewrite Module の記事を書いたのを思い出しましたので、それを紹介しておきます。

URL Rewrite Module の Outbound Rules
http://surferonwww.info/BlogEngine/post/2017/03/20/url-rewrite-module-putbound-rules.aspx

今回の質問者さんのやりたいことそのものズバリではないですが、この応用で拡張子 .html の静的ファイルの応答ヘッダに

Content-Type: text/html; charset=utf-8

と設定することはできるはずです。

これ以上の話は、質問者さんの環境で URL Rewrite Module が使えないということですと時間の無駄ですので、それを調べてからにしましょう。

【追記】

上の質問へのコメント欄にも書きましたが、URL Rewrite Module が使えないなら meta タグに設定してはいかがですか?

meta タグに書いても応答ヘッダが変わるわけではありませんが、使っているのが UTF-8 であることをブラウザに認識させるのに応答ヘッダの charset=utf-8 と同じ効果があります。(優先順位が応答ヘッダ―の方が高いこと、meta タグでは手間がかかるということがありますが、たぶん他に手はないと思います)

投稿2019/12/07 02:07

編集2019/12/07 02:39
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_15

2019/12/10 05:32 編集

※※追記:解決しました。 セミコロンが抜けてました。                     <action type="Rewrite" value="text/html charset=utf-8" />   <action type="Rewrite" value="text/html ; charset=utf-8" /> ※追記:スマートフォン(iPhone 8)で閲覧するとhtmlソースしか表示されない問題が発生しました。。。 お手数ですが、引き続き、問題解決方法についてご教授いただけますと幸いです。 ▪️こちらを記述したらできました!ありがとうございます。 なお、MIME(  <staticContent> )とURL書き換え( <rewrite> ) の両方を記述しないと反映されませんでした。         <staticContent>             <remove fileExtension=".htm" />             <remove fileExtension=".html" />             <mimeMap fileExtension=".htm" mimeType="text/html; charset=UTF-8" />             <mimeMap fileExtension=".html" mimeType="text/html; charset=UTF-8" />         </staticContent>     <rewrite>     <outboundRules>         <rule name="Rewrite Content-Type" preCondition="CT" stopProcessing="true">             <match serverVariable="RESPONSE_CONTENT_TYPE" pattern=".*" />                     <action type="Rewrite" value="text/html charset=utf-8" />                     </rule>                 <preConditions>                 <preCondition name="CT">                         <add input="{RESPONSE_CONTENT_TYPE}" pattern="text/html" />             </preCondition>         </preConditions>     </outboundRules>     </rewrite>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問