バイト数 を 使った ソースコードを紹介する表示色の説明:ASP VBScriptは <% 〜 %> キーワードはバイト数 です。
<%@LANGUAGE=VBScript%>
<html>
<head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>AND演算子を使って、1バイト文字2バイト文字の判断</title>
</head>
<body>
<h2>AND演算子を使って、1バイト文字2バイト文字の判断</h2>
<br>
たんに、
nCODE = Asc(Mid(strMOJI, n, 1)) 'n番目の文字コードを求める<br>
で、文字コードに変換後、
nCODE And &HFF00 でビットの演算をして、2バイトか判断しただけです。
<hr>
<%
CHK_DATA = Request.QueryString("DATA") 'パラメータの代入
'長さをチェックする
If Len(CHK_DATA) <> 0 Then '文字が入っていたら
Response.Write "受け取ったデータは["
Response.Write Server.HTMLEncode(CHK_DATA) & "]です<br>"
'関数を呼んで、バイト数を表示する
Response.Write "バイト数は、" & Byte_Count(CHK_DATA) & "Byteです<br>"
'文字数分ループして、コードを表示
For n = 1 To Len(CHK_DATA)
Response.Write n & "文字目は"
strWORK = Mid(CHK_DATA, n, 1) 'n番目の文字を取り出す
Response.Write "[" & Server.HTMLEncode(strWORK) & "] "
Response.Write "をAscで変換すると" & Asc(strWORK)
Response.Write " さらにHexで16進数にすると" & Hex(Asc(strWORK))
Response.Write "<BR>" & vbCRLF
Next
End If
%>
<HR>
<FORM ACTION="test055-1.asp" METHOD="GET">
調査したい文字列を入力してください。<br>
<INPUT TYPE="text" SIZE="30" NAME="DATA" VALUE="<%=CHK_DATA%>">
<INPUT TYPE="submit" VALUE="コード調査開始"><br>
↑いろいろと遊んでみてください↑
</FORM>
<br>
</body>
</html>
<% '文字列を受け取り、バイト数を返す
Function Byte_Count(strMOJI)
bcnt = 0
'文字数分ループして、コードを表示
For n = 1 To Len(strMOJI)
nCODE = Asc(Mid(strMOJI, n, 1)) 'n番目の文字コードを求める
If (nCODE And &HFF00) = 0 Then 'コードは1バイトか? *asp055
bcnt = bcnt + 1
Else
bcnt = bcnt + 2
End If
Next
'リターン値をセットする
Byte_Count = bcnt
End Function
%>
|
|