三流君のソースコード置き場

ブログにソースコードをアップして、ブログの検索機能で利用してます(利用予定です)

よく検索されるキーワード: [VBA]/ [VBS]/ [CreateObject]/ [Excel]/ [ADO]


asp061.html 三流君ASP:SJIS--JISのコード変換

元の三流解説は、
三流君ASP:SJIS--JISのコード変換
↑を見て、笑ってやってください。
ブログに過去のソースコードをアップして、ブログの検索機能で利用してます(利用予定です)
※古くさいコードが多いです・・・



ソースコード

<%@LANGUAGE=VBScript%>
<html>
<head>
<title>SJISからJISコードに変換、文字コード関係で遊ぶ</title>
</head>
<body>
<h2>SJISからJISコードに変換、文字コード関係で遊ぶ</h2>
<br>
自作したSJIS--JIS変換ルーチンを呼んでます。<br>
※詳細は、ソースと詳細解説のページを見てください。<br>
<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)
      strCODE = Hex(Asc(strWORK))
      If Len(strCODE) <= 2 Then  '半角か?
        Response.Write " さらにHexで16進数にすると" & strCODE
      Else
        Response.Write " さらにHexで16進(SJIS)は" & strCODE
        Response.Write " JISコードは" & SJIStoJIS(strCODE)
      End If
      Response.Write "<BR>" & vbCRLF
    Next
  End If
%>
<HR>
<FORM ACTION="test061-1.asp" METHOD="GET">
調査したい文字列を入力してください。<br>
<INPUT TYPE="text" SIZE="30" NAME="DATA" VALUE="<%=CHK_DATA%>">
<INPUT TYPE="submit" VALUE="コード調査開始"><br>
↑いろいろと遊んでみてください↑
</FORM>

<br>
</body>
</html>
<%
'SJISコードの文字列を受け取り、JISコードの文字列を返す
Function SJIStoJIS(strSJISCODE)

    Dim hi 
    Dim lo 

    'シフトJISコードの上位バイトを hi、下位バイトを lo とします。
    hi = Clng("&h" & Mid(strSJISCODE, 1, 2))
    lo = Clng("&h" & Mid(strSJISCODE, 3, 2))

    If hi <= &H9F Then 
      hi = hi - &H71 'hi が 0x9f 以下の場合、 hi から 0x71 減じます。
    Else
      hi = hi - &HB1 'そうでない場合、 hi から 0xB1 減じます。
    End If

    'hi に 2 を乗じて、さらに 1 を加えます。
    hi = hi * 2 + 1

    'lo が 0x7F より大きい場合、 lo から 1 減じます。
    If lo > &H7F Then lo = lo - 1

    'lo が 0x9E 以上の場合、lo から 0x7D 減じて、hi に 1 加えます。
    If lo >= &H9E Then
        lo = lo - &H7D
        hi = hi + 1
    Else 'そうでない場合、 lo から 0x1F 減じます。
        lo = lo - &H1F
    End If

    '結果を返します
    SJIStoJIS = Right("0" & Hex(hi), 2) & Right("0" & Hex(lo), 2)

End Function
 


'文字列を受け取り、バイト数を返す
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
 


%>

↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test061-1.asp?DATA=Ken3%82%CD%8EO%97%AC実行する



↑コードの三流解説は、
三流君ASP:SJIS--JISのコード変換
を見て、笑ってやってください。



ASPの解説 トップページは
三流君ASPで遊ぶ、失敗する
です。こちらもよろしく・・・

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)