none
パスやファイル名の日本語化について RRS feed

  • 質問

  • パスやファイル名、クエリ情報を日本語や、英語以外の言語にしたいと考えています。

    たとえば、日本語ですと、
    http://*****.cloudapp.net/計算結果.aspx?引数=100
    です。

    このため、Web.configに下記を追加しました。
    <globalization requestEncoding="Shift-JIS" responseEncoding="Shift-JIS" />

    ローカルであったり、レンタル・サーバーであれば、正しく動作しますが、
    発行後に、Cloud servicesのSite URLで実行すると、

    Server Error in '/' Application.
    --------------------------------------------------------------------------------
    The resource cannot be found.
    Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

    というエラーが出ます。

    その国の言葉で、わかりやすいファイル名にしたいです。
    ファイル名を、日本語や英語以外の言語にすることはできないのでしょうか。

    2012年9月3日 13:59

回答

  • 私事で恐縮ですが、

    今年6月より、Azureに関するサービスが大きくアップデートされたようで、

    本日、パソナテック様にて、Azureの仮想マシンに関するセミナーを受講させていただきました。

    http://www.windowsazure.com/ja-jp/community/hands-on-labs/

    現時点(2012913日時点)、仮想マシン・サービスについては、Preview版のようですが、

    WindowsLinuxOS等を自由にインストールすることが可能です。

    現在、Windows Azureの仮想マシンにおけるギャラリー(Gallery)には、

    Windowsですと、

    Windows Server 2008 R2

    Windows Server 2008 R2 with SQL Server 2012

    Windows Server2012の英語版が用意されておりますが、

    講師の方のお話ですと、

    ランゲージ・パックを入れれば、日本語化できるとのことです。

    つまり、この問題については、これで解決できるかと感じています。

    さまざまな立場に置かれた方が、このフォーラムをチェックしているのではと思い、

    何かのお役に立てればという思いで、書き込みをいたしました。

    なお、仮想マシンを利用するには、下記のURLにて、

    Try it now」ボタンをクリックして、アクティブ化する必要ががあります。

    https://account.windowsazure.com/PreviewFeatures

    短い間ですが、Azureに関する検証を通じ、今後に期待を感じています。

    • 回答としてマーク Mahalo_Azure 2012年9月13日 10:07
    2012年9月13日 10:03

すべての返信

  • 「ファイル名を、日本語や英語以外の言語」とのことですが、対応する言語の数だけ同じ内容のファイルを用意するのでしょうか?
    HTTPにはコンテンツネゴシエーションという機構があり、ユーザーエージェント(ブラウザー)が希望する言語を要求することができます。ファイル名で識別するのではなく、ブラウザーからの要求に答えることをお勧めします。

    また例として「引数=100」となっていますが、この「引数」の部分は一般的にHTMLのname属性値となります。
    しかしHTMLバージョン4では「IDトークンとNAMEトークンは、アルファベット([A-Za-z])で開始し、任意の数のアルファベット、数字、([0-9])、ハイフン(-)、アンダースコア(_)、コロン、(:)、ピリオド(.)のみで記述する必要がある。」となっていてアルファベット以外の文字は含めることができません。バージョン5ではこの辺りも変わりそうですが、安全を考えたらあまりお勧めできません。

    Windows Azureの前にそこで利用されるHTTPやHTMLを理解することをお勧めします。

    その上で今よく行われているのはURLをもっと読みやすく、質問文にある例でしたら

    http://www.example.com/result/100

    のような表現にします。(".aspx"とか"?引数="とかは本来不要なはず。)

    2012年9月4日 0:29
  • せっかく、ご返事をいただいたのですが、事例等が悪かったせいで、自分が求めるものとは異なり、再度、説明します。

    下記のabcとは、ここで事例を説明するための任意の文字列です。

    たとえば、レンタル・サーバーでは、

    http://abc.com/別表.aspxや、http://abc.com/別表.aspx?金額=1000

    が表示・動作できても、

    Azureでは、http://abc.cloudapp.net/別表.aspxや、http://abc.cloudapp.net/別表.aspx?金額=1000

    という日本語のファイル名については、表示もできないのでしょうか?

    The resource cannot be found.というエラーメッセージが表示されます。

    なお、http://abc.cloudapp.net/test.aspxや、http://abc.cloudapp.net/test.aspx?m=1000

    については表示・動作できることを確認しています。

    本当にできる、できないを知りたく、できないのであれば、何がいけないのか?

    上から目線のご返事はお断りします。

    2012年9月4日 1:39
  • 端的に言えば、できるかできないか解らないの部分だと思います。

    まず最初に意識してほしい事ですが、基本的に Azure は英語版の Windows Server で動作していますので、日本語版のWindows Server では設定されている日本固有の設定がされていないこと、日本固有の設定等は必要ならば利用者が行わなければならない形になります。このあたりの設定のまとまった資料は存在してないと思いますので日英のWindows Serverを比較しながら洗い出さないと解らないかも知れません。また、クラウドですと上位に設定を変える事のできないヘッドロードバランサーが居るのでバランサーで問題が発生してしまうようであれば結論としてできない事になります。

    そして、ファイル名そのものはファイルシステム上ではUnicodeで保存されていますが、Azure へのファイルのアップロード形式のベースとなっている ZIP ファイル形式には日本語ファイル名の取り扱いの基本規則が無く(Unicode対応のビットがあるにはあるのですが利用されていないケースが多く)日本語版のWindows Explorerで作成されるZIPファイルを英語版のWindows Explorerで解凍するとファイル名が化ける等の事象が発生しますので日本語ファイル名を持ったファイルを正しくサーバにアップできているかリモートデスクトップ接続等で確認する事をお勧めします。結果的にアップロードに失敗しているのであればファイルをアップロードする方法の再検討が必要になるでしょう。

    また、config でShift-JISをエンコーディングに指定しているようですが、その設定要素は要求本文、応答本文に対する設定要素なので、ファイル名としてURLが送られるヘッダに対しての設定になっていませんので設定している意味がないかもしれません。ただし、W3Cにより URL 中の文字のエンコードは UTF8が推奨されており、最近のブラウザではこの標準に沿っていますので shift-jis のままURLを送る古いブラウザ等特殊なクライアントに対してサービス提供する必要がある場合以外は不要なはずです。

    思いつく範囲でこのぐらいの問題点の候補はありえますが、どこに引っかかっているのかは試してみないと解らないのが実際ですのでご自分が試した結果に対して照らし合わせて頂きたく。(思いつく範囲ですので、他にも問題の発生可能性はあります。)


    Kazuhiko Kikuchi

    2012年9月6日 6:02
  • 私事で恐縮ですが、

    今年6月より、Azureに関するサービスが大きくアップデートされたようで、

    本日、パソナテック様にて、Azureの仮想マシンに関するセミナーを受講させていただきました。

    http://www.windowsazure.com/ja-jp/community/hands-on-labs/

    現時点(2012913日時点)、仮想マシン・サービスについては、Preview版のようですが、

    WindowsLinuxOS等を自由にインストールすることが可能です。

    現在、Windows Azureの仮想マシンにおけるギャラリー(Gallery)には、

    Windowsですと、

    Windows Server 2008 R2

    Windows Server 2008 R2 with SQL Server 2012

    Windows Server2012の英語版が用意されておりますが、

    講師の方のお話ですと、

    ランゲージ・パックを入れれば、日本語化できるとのことです。

    つまり、この問題については、これで解決できるかと感じています。

    さまざまな立場に置かれた方が、このフォーラムをチェックしているのではと思い、

    何かのお役に立てればという思いで、書き込みをいたしました。

    なお、仮想マシンを利用するには、下記のURLにて、

    Try it now」ボタンをクリックして、アクティブ化する必要ががあります。

    https://account.windowsazure.com/PreviewFeatures

    短い間ですが、Azureに関する検証を通じ、今後に期待を感じています。

    • 回答としてマーク Mahalo_Azure 2012年9月13日 10:07
    2012年9月13日 10:03