Google Chart APIは無料で簡単でしかもなかなかリッチなインターフェイスを実現出来るすぐれものだが日本語を使えるとは説明がない。
が、しかし、方法はあったのだ。
UTF8変換すればよいだけとのことだ。
そこで関数をコピペ用として後で使用する為にメモをしておくとする。
VBA,VBScript,aspで使用可能ですが、これを使用しての不都合が発生した場合、当方で責任は持ちません。
引数名 ConveLen
引数型  String
戻り値 全角及び半角カナ、記号の場合にUTF8変換文字
    英数字はそのまま
型   string
サンプル ConveLen("テスト")
Function SJIStoUTF8(strSJIS)
    strUNICODE = ASCW(strSJIS)   
 strWORK2 = HEX16toSTR2(HEX(strUNICODE))
    strUTF8CODE = "1110" & Mid(strWORK2, 1, 4)   
 strUTF8CODE = strUTF8CODE & "10" & Mid(strWORK2, 5, 6)   
 strUTF8CODE = strUTF8CODE & "10" & Mid(strWORK2, 11, 6)
    strWORK16 = STR2toHEX16(strUTF8CODE)
    strRET = ""   
 strRET = strRET & "%" & Mid(strWORK16, 1, 2)    
 strRET = strRET & "%" & Mid(strWORK16, 3, 2)    
 strRET = strRET & "%" & Mid(strWORK16, 5, 2)
    SJIStoUTF8 = strRET
End Function
Function HEX16toSTR2(strHEX)
    Dim n          
 Dim i          
 Dim n8421     
 Dim str2STR
    Dim nCHK
    str2STR = ""
    For n = 1 To Len(strHEX)       
  On Error Resume Next          
  nCHK = 0 '0で初期化       
  nCHK = CInt("&h" & Mid(strHEX, n, 1))       
  On Error Goto 0
        n8421 = 8        
  For i = 1 To 4           
   If (nCHK And n8421) = 0 Then                
    str2STR = str2STR & "0"            
   Else               
    str2STR = str2STR & "1"           
   End If           
   n8421 = n8421 / 2       
  Next    
 Next
    HEX16toSTR2 = str2STR
End Function
Function STR2toHEX16(str2)
    Dim strHEX   
 Dim n          
 Dim i         
 Dim n8421      
 Dim nBYTE
    n = Len(str2) Mod 4         
 If n <> 0 Then       
  str2 = String(4 - n, "0") & str2    
 End If
    strHEX = ""  
    For n = 1 To Len(str2) Step 4         
  n8421 = 8         
  nBYTE = 0         
  For i = 0 To 3            
   If Mid(str2, n + i, 1) = "1" Then               
    nBYTE = nBYTE + n8421              
   End If            n8421 = n8421 / 2       
  Next        
  strHEX = strHEX & Hex(nBYTE)    
 Next
     STR2toHEX16 = strHEX
End Function
Function ConveLen(ByVal a)
Dim i,outLen
strHan = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ゙゚ー"
For i = 0 To Len(a) - 1 
 k = Mid(a, i + 1, 1)  'If InStr(strHan, Mid(k, i, 1)) <> 0 Then          '半角カナ  →UTF8 
 If InStr(strHan, k) <> 0 Then    
  outLen = outLen & SJIStoUTF8(k) 
 else           
  If (Asc(k) And &HFF00) = 0 Then            
   outLen = outLen & k        
  Else                       
   outLen = outLen & SJIStoUTF8(k)        
  End If   
 End If  
Next
ConveLen = outLen
End Function
1 件のコメント:
あっ!
コメントを投稿