LoginSignup
6

More than 5 years have passed since last update.

Edge、Chrome対応メモ

Last updated at Posted at 2016-08-06

0.経緯

元々IE11用に作成されていたJava製のWebシステムで
Edge、Chromeへの対応をやってる際、
他のシステムでも対応しないとならなさそうな
問題が色々出て来たのでメモ。
今後更に増えるかも?

1.日本語名ファイルのダウンロード文字化け対応

IE11、Edgeでは問題無かった日本語ファイル名のダウンロードが
Chromeでは文字化け。
サーバー側で該当部分のコードを調べてみると…

String fileName = new String(value.getBytes("Windows-31J") , "8859_1" );
response.setHeader("Content-Disposition", "attachment;filename=¥"" + fileName +"¥"" );

この通り、Windows-31J(Shift-JIS)でのエンコード。
Chromeがダメなわけです。

幸運にも今回の案件ではIEの下位互換は考えなくて良かったので
RFC 6266 にならって以下の通り修正。

String fileName = URLEncoder.encode(value, "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + fileName);

これにてChromeでの文字化けが解消。
Edge、IE11でも文字化けは起こらず、一件落着。

2.コード項目のハイパーリンク化対応

業務系のシステムだとありがちな
文字列数字n桁のコードの画面表示。

IE11ではごく普通のラベルとして表示されていたのに、
Edgeで確認すると謎のハイパーリンク化。

一体何だろうと調べてみるとこんなオチでした。
https://msdn.microsoft.com/ja-jp/library/dn265018%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

IE11の話として書いてるけど、IE11では発生せず…
むしろEdgeでの話として捉えた方が良さそうです。

というわけで、画面のjspのheadタグ内に以下の一行を追加。

<meta name="format-detection" content="telephone=no"/>

これにて、謎のハイパーリンク化現象は解消。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6