
ASP(VBScript)での開発をしています。
全角英数記号を、半角英数記号に変換したくて、以下のメソッドを
作りました。
Function FunFullToHalf(ByVal StrTarget)
Dim ObjBASP21
Dim StrHalf
Set ObjBASP21 = Server.CreateObject("basp21")
StrHalf = ObjBASP21.StrConv(StrTarget,8)
FunFullToHalf = StrTarget
End Function
しかし、これだと、全角カタカナまで半角になってしまい、困っています。
回避策を教えていただけないでしょうか。

No.1ベストアンサー
- 回答日時:
だったら関数を自作すれば?
所詮変換の方向が [全角]→[半角] なんだし、変換してもよい文字の一覧が質問者の頭の中にあるんだろうし。
泥臭いけれど、あらかじめ変換候補としている文字の一覧と、変換後イメージの一覧を持っておいて、対象文字列の先頭から順に一文字ずつ変換するって方法。
' 変換してもよい文字の一覧
Const wideList = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-=_"
' 変換後の文字一覧(変換してもよい文字の一覧と同じ並び、同じ数にしておく)
Const narrowList = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-=_"
Dim src
src = "Aあア1-ーBk_" ' これを変換する。あアー の3文字以外は変換したい。
Dim dest
dest = conv(src) ' 変換する conv 関数を呼び出す
WScript.Echo dest
' 変換前の文字列を受け取って、変換した文字列を返す
Function conv(aSrc)
Dim returnValue
' ソース文字列を 1文字ずつ取り出す
Dim srcPos
For srcPos = 1 To Len(aSrc)
Dim hit
hit = False
' 変換候補リストを 1文字ずつ取り出す
Dim listPos
For listPos = 1 To Len(wideList)
' 比較して変換候補リストにあればフラグを立てる
If Mid(aSrc, srcPos, 1) = Mid(wideList, listPos, 1) Then
hit = True
Exit For
End If
Next
' フラグが立っていれば変換し、立っていなければソースの文字を使用する
If hit Then
returnValue = returnValue & Mid(narrowList, listPos, 1)
Else
returnValue = returnValue & Mid(aSrc, srcPos, 1)
End If
Next
conv = returnValue
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの漢字(全角ひらが...
-
Excel VBAでPDFファイルをMicro...
-
CString から LPCTSTRの型に変換
-
文字コードの%E3%80%とは何です...
-
改行を含んだ文字列を正規表現...
-
Kシェルでの文字型→数値型変換
-
シングルクォーテーションの変換
-
ローマ字からカナに変換する方...
-
VB6にも「ToString」ってあり...
-
ひらがなから全角カタカナへの...
-
CString型からdouble型への変換
-
これはなんの文字コードでしょうか
-
SQLのデータで半角カナを全角に...
-
CSVファイルの中で、「 , 」カ...
-
IEからEdgeへの移行に伴うIMEの...
-
エクセルで数値を全角文字(カ...
-
VBA 文字に半角が含まれて...
-
住宅にカナを入力する際に丁目...
-
正規表現で、特定の文字列を含...
-
COBOL・全角判定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでPDFファイルをMicro...
-
文字コードの%E3%80%とは何です...
-
CString から LPCTSTRの型に変換
-
SQLのデータで半角カナを全角に...
-
エクセルでの漢字(全角ひらが...
-
CString型からdouble型への変換
-
SJIS->UTF8->SJISコード変換に...
-
エンコードとコンバートの違い...
-
JISとシフトJIS
-
VBScript文字列をSJISからUTF8...
-
漢字からカタカナ変換マクロ
-
あるユニコード文字が、あるコ...
-
テキストをhtml変換するには
-
文字列を quoted-printable 文...
-
マイク取得音声のテキスト変換
-
16進数の文字列を文章に変える
-
dreamweaver タグの設定変更の...
-
日本語ドメインを取得しようと...
-
html内のカタカナを全て全...
-
ファイル名の右側を変更したい ...
おすすめ情報