ASPでの「ダメ文字」対策について

このQ&Aのポイント
  • ASP(VBscript,JavaScript)にて指定したファイルをWebサーバーにアップロードする際の「ダメ文字」対策について調査しています。
  • 特定の文字を含む名称のファイルをアップロードすると、正常にアップロードされずに一部の文字列がカットされてしまう問題が発生しています。
  • 現在、Shift-JISでの「ダメ文字」が原因である可能性があり、ASPソースの保存時のエンコード変更を試しても解決策が見つかっていません。
回答を見る
  • ベストアンサー

ASPでの「ダメ文字」対策について

  お世話になります。 ASP(VBscript,JavaScript)にて作成したある画面で、 「指定したファイルをWebサーバーにアップロード」する必要があるため 以下のサイトを参考にASPのソース修正、VB6にてDLL作成を行い運用しております。 http://support.microsoft.com/kb/299692/ja 現状、指定したファイルが正常にアップロードされているのですが 特定の文字を含む名称のファイルをアップロードすると正常にアップロードされません。 例:"運用予定.xls"     → "定.xls"   "仕入一覧表.txt"    → ".txt"   "仕入一覧表その1.txt" → "その1.txt" 特定の文字より前の文字列がカットされた名称になっているようです。 ※↑の例の場合「予」や「表」という文字 調べてみたところ「Shift-JIS」でのいわゆる「ダメ文字」といわれるものが 影響してる事までは分かりました。 http://ja.wikipedia.org/wiki/Shift_JIS 自分なりにASPソースの保存時のエンコードをUTF-8やEUCに変えて試してみましたが 思うような結果は得られませんでした。 何か案等がございましたらご教授よろしくお願いします。  

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

素直に BASP21 を使うんじゃダメですか? かなり常道だと思うんですけど。 だめ文字の影響を受けるかどうかは試したことがないのでわかりません。 BASP21 http://www.hi-ho.ne.jp/babaq/basp21.html アップロードのサンプル http://www.hi-ho.ne.jp/babaq/basp21.html#0090

Elldorado
質問者

お礼

BASP21はメール送信機能で利用したことはありましたが この様な用途でも使えるのですね、参考にさせていただきます。 有難うございました。

Elldorado
質問者

補足

その後、Basp21を利用してファイルのアップロードを行ったところ ダメ文字の影響を受けずに正常にアップロードされました。 有難うございました。

関連するQ&A

  • ASP.NETの文字コードごとのフォントスタイルについて

    以前Unicodeでエンコードして保存したファイルを 日本語Shift-JISでエンコードしなおして保存したところ、 フォントスタイルがかわってしまいました。 各文字コードごとにデフォルトのフォントスタイルが決まっているのでしょうか?もし決まっているならば教えてください。 また、Shift-JISで保存したファイルの文字をUnicodeで保存したときのファイルと同じフォントスタイルにする方法をご存知でしたら教えてください。 ASP.NET初心者なため、ご教授お願いいたします。

  • 文字コードの判別について

    とあるテキストファイルがあります。UNIX上で文字コードの判別を行いたいのですが、nkf --guess test.txtと打って調べると、 test.txt: ASCII (CRLF) となります。このファイルは、Shift-JISだという判定だと思います。 ファイルをUTF8に変換したいので、(1)Windows上のエディタ(秀丸)の機能を使ってUTF8に変換してからUNIX上にアップロードしたり、また(2)UNIX上から直接nkf -w --overwrite test.txtを実行して変換したりしたのですが、nkf --guess test.txtを打って調べると相変わらず test.txt: ASCII (CRLF) のままです。 色々調べた結果、ファイルの中身が英数字のみしか書かれていないので、nkfがこのファイルをShift JISだと「推測」しているということがわかってきました。確かに、試しにファイルの中身に日本語を書いて保存して実行してみると、ようやくnkf --guess test.txtの結果が test.txt: UTF-8 (CRLF) と表示されるようになりました。 これらの結果は、ファイルの中身のマルチバイト文字のコードを見て初めて文字コードがわかるようになるというように思えます。 私の理解ではファイル自体にEUCやShift JIS、UTF-8などの文字コードがあるものとばかり思っておりました。つまり、test.txtの内容が"This is a pen."であったとしてEUC、Shift JIS、UTF-8では全く異なる三種類のファイルが存在し得るものだと思っておりました。しかしこれは私の理解が間違っていて、英数字であれば常にShift JISであり、マルチバイト文字があって初めてUTF-8なのかEUCなのかShift JISなのかが決定されるということなのでしょうか? 英数字のみのファイルでもUTF-8ファイルという前提を確認する方法はないのでしょうか? 宜しくお願いします。

  • ASP.NETでエンコードの判定

    ASP.NETで与えられた文字列がShift_JISかeuc-jpかなどのエンコードの判定はどのようにすればよいでしょうか? お願いします。

  • 文字コード変換

    フォルダ内にあるtxtファイルの文字コードを一括でUTF8→shift-jisに変更できるbatファイルの作成方法を教えて下さい。 何かをインストールせずに作成したいです。 txtファイルとbatファイルは同じフォルダにある前提で作成したいです。

  • iPadで *.txt ファイルが文字化けする

    Win.8で作った *.txt ファイル(Shift-JISで作成)をOneDriveに置いていますが、それをiPadで読むと文字化けします。そのファイルをコピーしてDropboxに置いてiPadで読んでも文字化けしません。 これは何故でしょう? また OneDrive で文字化けしないようにするにはどうすればよいでしょう?

  • ASPが動かない

    こんにちはASPが動かないので、どなたかHELP下さい。 以前はNT 4.0+IIS4で取り合えずASPは動いていたのですが Win2000 + IIS 5.0に再インストールしてから動作しなくなりました。 ASPのファイルを見るとASPのアイコンにならないことからASPがインス トールされていないのかなと思いつつ調べていますが判りません  こんなのも動かない    ↓ <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis"> <title>List 3.1</title> </head> <body> <!-- ここはコメントです --> <% Response.Write "一般的なHTMLです" %><br> </body> </html>

  • ファイルの文字コードを調べるには?(php)

    言語はphpです。 アップロードしたファイルをからデータを1行ずつ抜き取るという作業をしています。 その際にエンコードを下記の方法で行っています。 $lines = mb_convert_encoding(fgets($fp), 'utf-8','shift-jis'); この場合、元のファイルがshift-jisであればなんら問題は無いのですが、すべてのファイルがそうとは限りません。なので、アップロードしたファイルの文字コードを調べ、その文字コードを記述するようにしたいのですが、調べる方法は何か無いでしょうか? ※[auto]を試してみましたが、その際は文字化けが起きていましましたので、出来れば他の方法でお願いします。 自分なりに調べてみましたが、良い情報を見つけることが出来なかったので、ご存知の方は宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 海外サーバ(ASP.NET利用)での文字化け

    海外のレンタルサーバ(英語)をレンタルしたのですが、ASP.NETを利用すると文字化けを起こしてしまって困っています。色々と試してみたのですが、どうしてもうまく行きません。ASPやHTMLでは文字化けしないのですがなぜかASP.NET(aspxファイル)を実行する時だけなのです。TRYした内容で、まともに表示された例を挙げます。 まず、aspxファイルに<%@ CodePage ="1252" %>を指定し、実行する。 次に表示された結果をブラウザ(IE)の「表示」→「エンコード」を「日本語(Shift JIS)」にすると、うまく表示されます。 ただ、これではクライアントにいちいちエンコードしてもらわないといけないので非現実的です。 コード内で、 Session.codepage = 932 等にも変換してみたのですが、うまくいきませんでした。 尚、<%@ CodePage ="***" %>の部分の殆どの日本語コードを試してみましたがこれも駄目でした。(↓試したコード) http://msdn2.microsoft.com/ja-jp/library/system.text.encoding.windowscodepage.aspx どなたか同じような症状を経験した方がいらっしゃれば、ご教授願えませんでしょうか? ちなみに、サーバは WIN2003 ASP2.0です。 よろしくお願いいたします。

  • ファイルのアップロード

    CGI初心者です。 http://nais.to/~yto/tools/ssupload/ NAIS.TOさんのサイトのファイルアップロードのソースを実際に試してみているのですが、 txtファイルやdatファイルはアップロード後開くことができるのですが、 pdfやxlsファイルは『ファイルが壊れています』と言われ、 フォルダに保存はされているのですが、開くことはできません。 html画面では文字コードがs-jisなのに cgiになるとISOになるのが原因だったりしますでしょうか。 ご回答宜しくお願いいたします。 環境 IE6 APACHE HTTP SERVER 2.0.58 ActivePerl 5.8.8

    • ベストアンサー
    • CGI
  • Windowsのシステム文字コードについて

    unicodeの制御文字RLOを挟むことによって、Windows上でファイル名を偽装できる(”aaa_txt.exe” > ”aaa_exe.txt”と見せてexeファイルをテキストファイルだと誤認させる)という記事をネットで見ました。で、怖くなってウィンドウズの文字コードがどうなっているのか調べていくと、 ・内部的にはunicode ・表示は言語に合わせて(日本語なら)Shift-JIS だと知りました。 つまり ”aaa_exe.txt”と表示されていても、本当は”aaa_txt.exe”というファイル名だから、ダブルクリックすると実行されると... で、自分で空のファイルを作って上記のように名前を偽装してダブルクリックしてみたら、普通にテキストエディタが起動しました。。。問題ないじゃん。 ファイルをダブルクリックしたときにwindowsに渡されるファイル名は以下のどれなのでしょうか? 1. Unicodeでaaa_(RLO)txt.exe 2. Unicodeでaaa_exe.txt 3. Shift-JISでaaa_exe.txt

専門家に質問してみよう