من یه فایل Text رو با انواع Unicode و UTF درست کردم که توش یه متن فارسی بود و بعد اون رو با OPEN توی Label1.caption باز کردم ولی کاراکتر های درهم و گنگ نمایش میده کسی میدونه باید چکار کنم؟
Printable View
من یه فایل Text رو با انواع Unicode و UTF درست کردم که توش یه متن فارسی بود و بعد اون رو با OPEN توی Label1.caption باز کردم ولی کاراکتر های درهم و گنگ نمایش میده کسی میدونه باید چکار کنم؟
دوست عزیز. شما متن رو بصورت یونیکد ذخیره کردین. کنترل لیبل در ویژوال بیسیک 6 توانایی نمایش کاراکترهای یونیکد رو نداره.
خوب چطور بايد متن فارسي رو باز کرد من حتي از UTF هم استفاده کردم جواب نداد!؟ حتي متن ها رو داخل Textbox هم درست نشون نميده بالاخره بايد يه راهي باشه!؟ اگر متن ها خيلي زياد نبودن تو ليبل ميزاشتم ولي خيلي زيادن.نقل قول:
از اين كد برا نمايش ميتوني استفاده كنيبرا استفاده به شكل زير عمل كنکد:
Public Function UTF8_Encode(ByVal sStr As String)
Dim L As Long, lChar As Long, sUTF8 As String
For L& = 1 To Len(sStr)
lChar& = AscW(Mid(sStr, L&, 1))
If lChar& < 128 Then
sUTF8$ = sUTF8$ + Mid(sStr, L&, 1)
ElseIf ((lChar& > 127) And (lChar& < 2048)) Then
sUTF8$ = sUTF8$ + Chr(((lChar& \ 64) Or 192))
sUTF8$ = sUTF8$ + Chr(((lChar& And 63) Or 128))
Else
sUTF8$ = sUTF8$ + Chr(((lChar& \ 144) Or 234))
sUTF8$ = sUTF8$ + Chr((((lChar& \ 64) And 63) Or 128))
sUTF8$ = sUTF8$ + Chr(((lChar& And 63) Or 128))
End If
Next L&
UTF8_Encode = sUTF8$
End Function
'===============================Farsi nevisi
Public Function UTF8_Decode(ByVal sStr As String)
On Error Resume Next
Dim L As Long, sUTF8 As String, iChar As Integer, iChar2 As Integer
sStr = Replace(sStr, "غŒ", UTF8_Encode("ي"))
sStr = Replace(sStr, "ظ‰", UTF8_Encode("ي"))
For L = 1 To Len(sStr)
iChar = Asc(Mid(sStr, L, 1))
If iChar > 127 Then
If Not iChar And 32 Then
iChar2 = Asc(Mid(sStr, L + 1, 1))
sUTF8 = sUTF8 & ChrW$(((31 And iChar) * 64 + (63 And iChar2)))
L = L + 1
Else
Dim iChar3 As Integer
iChar2 = Asc(Mid(sStr, L + 1, 1))
iChar3 = Asc(Mid(sStr, L + 2, 1))
sUTF8 = sUTF8 & ChrW$(((iChar And 15) * 16 * 256) + ((iChar2 And 63) * 64) + (iChar3 And 63))
L = L + 2
End If
Else
sUTF8 = sUTF8 & Chr$(iChar)
End If
Next L
UTF8_Decode = sUTF8
End Function
Public Function EncodeString(StrText As String) As String
On Error Resume Next
Dim I As Integer, bEnc As String
For I = 1 To Len(StrText)
bEnc = bEnc & "%" & Hex(Asc(Mid(StrText, I, 1)))
Next
EncodeString = bEnc
End Function
کد:UTF8_Decode(Text1.Text)
UTF8_Encode(Text2.Text)
mesal
text1.text=UTF8_Encode(Text1.Text)
text1.text=UTF8_Encode(Text2.Text)