
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ランキング
-
文字コードの%E3%80%とは何です...
-
CString から LPCTSTRの型に変換
-
エンコードとコンバートの違い...
-
LINUX上でシリアル通信(C++)
-
ubuntuの文字化け解消方法
-
Excel VBAでPDFファイルをMicro...
-
16進数の文字列を文章に変える
-
エクセルで数値を全角文字(カ...
-
CSVファイルの中で、「 , 」カ...
-
VBA 文字に半角が含まれて...
-
「一角」って何でしょうか
-
住宅にカナを入力する際に丁目...
-
フォントの色を保持したままセ...
-
WORDで改ページすると時々グレ...
-
【VBA】エクセルで値のみクリッ...
-
各項目がダブルクォーテーショ...
-
.NET3.5におけるキーボードの「...
-
全角/半角キーをSendkeys関数で...
-
データにカンマが入ったCSVデー...
-
マクロを使ってフォルダー内に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字コードの%E3%80%とは何です...
-
CString から LPCTSTRの型に変換
-
Excel VBAでPDFファイルをMicro...
-
ローマ字からカナに変換する方...
-
SQLのデータで半角カナを全角に...
-
漢字からカタカナ変換マクロ
-
VBScript文字列をSJISからUTF8...
-
エクセルでの漢字(全角ひらが...
-
CString型からdouble型への変換
-
VB6にも「ToString」ってあり...
-
漢数字の変換
-
シングルクォーテーションの変換
-
SJIS->UTF8->SJISコード変換に...
-
r18文学賞は文字数ではなく、枚...
-
シェルスクリプトで文字列置換
-
gccでiconvを使った文字コード...
-
スマホの予測変換について
-
テキストをhtml変換するには
-
文字列が勝手にエスケープ文字...
-
vbwide(半角⇒全角変換)について
おすすめ情報