file:///
の文字エンコードは、Windowsの各ブラウザで異なる動作をします。
、Windowsのファイル名はネイティブにUnicodeベースなので、あなたはバイトベースでURLを使用する場合、それは、エンコーディングを使用してUnicode文字をバイトのシーケンスを変換する必要があります。どのようなエンコーディングですか?言っても標準ではありませんが、二つの明白な可能性があります
UTF-8、それはすべてをカバーし、また、URIの中でUnicodeを置くためのIRI標準で使用される人気のデフォルトのエンコーディングであるため、
システムによって異なり、任意のデフォルトである(誤解を招く名前の)「ANSI」コードページ、。西欧のWindowsインストールでは、コードページ1252(ISO-8859-1に似ています)となります。中国語版Windowsインストールでは、コードページ936(GB2312と同様)になります。あなたはために何が起こっているのか分からないので、
ANSIコードページが苦痛である、それは決して UTF-8だし、あなたのファイル名は、ANSI-確かになるには存在しない文字が含まれている場合Western Windowsのインストール時にファイル名徘吐驴欸觰.bmp
がある場合は、ファイルにアクセスできません。
ブラウザはどちらを使用していますか?
- IE:ANSIコードページ
- サファリ/オペラ:UTF-8
- クローム/ Firefoxの:UTF-8、バイトが有効なUTF-8シーケンス、ケース内ANSIコードではありませんしない限り、代わりにページが使用されます。
結論として、確実にfile:/// URLに非ASCII文字を使用することはできません。
これはHTTPとは対照的です。たとえば、IIS Webサーバーには、ChromeやFirefoxと同じUTF-8 with fallback-ANSI動作があります。 IRIと適切に構成されたサーバーを介した非ASCII文字は問題ありませんが、ローカルファイルシステムではありません。
は(Windows以外のプラットフォームではファイル名はネイティブであり、通常はUTF-8でエンコードされた文字を表す、バイト、それでもバイト。あぁ、ファイルシステムの名前とバイトベースのURL%の-sequencesの間には曖昧さがありません。)
die ANSIコードページdie。なぜマイクロソフトはあなたを殺しませんか?あなたは長い間、あなたの歓迎には屈しませんでした。あなたはすべてを台無しにする。
IEとnot-IEがヒットしたときのサーバーのアクセスログを比較します。 IE 404ingですか?パスは違いますか? – Quentin
@MM:あなたのサイトに実際に.bmpを使用していますか? – PeeHaa
@Quentin - 404はありません。これは画像と同様にローカルファイルです。 hello.bmpは正しくロードされますが、隣のエンコードされたパスは失敗します。 –