문자열 유니코드 변경
StrToUni 함수 : 문자열을 유니코드로 변경
UniToStr 함수 : 유니코드를 문자열로 변경
Private Function StrToUni(Text As String) As String
Dim a As String, b As String, C As String, i As Integer '변수선언
For i = 1 To Len(Text)
'영문과 한글 변환 설정
If Len(Hex(AscW(Mid(Text, i, 1)))) = 2 Then '숫자, 영문이 들어올때
StrToUni = StrToUni + Hex(AscW(Mid(Text, i, 1))) + "00"
Else
If Len(Hex(AscW(Mid(Text, i, 1)))) = 1 Then
StrToUni = StrToUni + "000" + Hex(AscW(Mid(Text, i, 1)))
Else
'리턴값 처리
If Mid(Text, i, 1) = vbLf Then
StrToUni = Left(StrToUni, Len(StrToUni) - 1)
StrToUni = StrToUni + "0A0D"
Else
StrToUni = StrToUni + Hex(AscW(Mid(Text, i, 1))) '///한글이 들어올때
End If
End If
End If
Next i
For i = 1 To Len(StrToUni) Step 4
a = Mid(StrToUni, i, 2)
b = Mid(StrToUni, i + 2, 2)
C = C + b + a
Next i
StrToUni = C
End Function
--------------------------------------------------------------------------------------------------------
Private Function UniToStr(Text As String) As String
Dim i As Integer
Dim a As String, b As String, C As String
Text = Trim(Text)
For i = 1 To Len(Text) Step 4
'리턴값 처리
If Mid(Text, i, 4) = "0D0A" Then
UniToStr = UniToStr + vbCrLf
C = C + "0000"
Else
'순서변경
a = Mid(Text, i, 2)
b = Mid(Text, i + 2, 2)
'영문/기타 문자일 경우, 다시 변경
If a = "00" Then
C = C + Mid(Text, i, 4)
'특수경우 제외
Select Case LCase(ChrW(Val("&H" & Mid(C, i, 4))))
Case "a" To "z", 0 To 9, "-", "_", "=", "+", "\", "|", "[", "]", "{", "}", "<", ">", ",", ".", "/", "?", "~", "!", "@", "$", "#", "%", "^", "&", "*", "(", ")", ":", ";", "'", """", " "
Case Else
C = Left(C, Len(C) - 4) + b + a
End Select
Else
C = C + b + a
End If
'"저", "팀" 변환문제 해결
Select Case a + b
Case "00C8"
UniToStr = UniToStr + "저"
Case "00D3"
UniToStr = UniToStr + "팀"
Case Else
UniToStr = UniToStr + ChrW(Val("&H" & Mid(C, i, 4)))
End Select
End If
Next i
End Function
'Program & etc > Visual Basic' 카테고리의 다른 글
[Visual Basic] 자동업데이트 만들기 (0) | 2014.02.25 |
---|---|
[Visual Basic] 변수선언 (0) | 2014.02.20 |
[visual basic] 입력용 파일열기 (0) | 2014.01.27 |
[visual basic] 여러가지 함수 (0) | 2014.01.21 |
[visual basic] 프로그램 중복 실행 방지 (0) | 2014.01.21 |