30. marts 2009 - 15:32
Der er
2 kommentarer og
1 løsning
Haster: ASP med VBScript har problemer med at finde færøske/danske bogstaver
Hej,
funktionen kan testes her:
http://www.kortal.fo/testAjax.htmJeg skal blive færdig med det her i dag, og har lidt problemer med at få det at virke med færøske (danske) bogstaver.
Jeg har fået færøske bogstaver at virke ved udtag fra DB, men når jeg skriver i tekstfeltet, får jeg mærkelige tegn når jeg skriver færøske bogstaver.
Er der nogen der har erfaring med dette og/eller kan hjælpe mig med dette problem asap?
Giver 200 points, siden det haster så meget..
lidt forklaring om layout/ord på siden - dette er irrelevant til selve opgaven, men lidt information for at vide hvad der sker, når man tester:
- Vegnavn = Vejnavn
- Uppskot = Forslag
- Efter "Uppskot" kan man se et tal, som så er hvor mange tegn du har skrevet i tekstfeltet (kommer kun til at stå der i test-fasen - indtil problemet med færøske bogstaver er løst)
- longd = længde (dette er længden af felt-værdien i DB - også kun i testfasen)
- vegur = vej
- x/y = koordinater
På forhånd tak! :-)
// jih
30. marts 2009 - 16:41
#1
ud af al desperation er jeg kommet frem til en løsning sådan her:
Function EncodeChars(myString)
Dim intI
Dim tmpA
For intI = 1 To Len(myString)
If (Asc(Mid(myString, intI, 1)) = 195) Then
If (Asc(Mid(myString, intI + 1, 1)) = 184) Then
myString = Left(myString, intI - 1) & "ø" & Right(myString, Len(myString) - intI)
End If
End If
tmpA = tmpA & Asc(Mid(myString, intI, 1)) & ","
Next
EncodeChars = tmpA
End Function
problemet er bare at den ikke virker helt fuldstændigt.. Jeg har fået den til at erstatte Chr(195) med Chr(248) når man skriver "ø", men det efterfølgende Chr(184) bliver ved med at være der. Nogen der har nogle forslag?
30. marts 2009 - 18:36
#2
det er nu blevet klaret med følgende:
Function EncodeChars(myString)
Dim intI
Dim tmpA
tmpA = myString
For intI = 1 To Len(myString)
If (Asc(Mid(myString, intI, 1)) = 195) Then
If (Asc(Mid(myString, intI + 1, 1)) = 161) Then
tmpA = Left(myString, intI - 1) & "á" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 129) Then
tmpA = Left(myString, intI - 1) & "Á" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 176) Then
tmpA = Left(myString, intI - 1) & "ð" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 144) Then
tmpA = Left(myString, intI - 1) & "Ð" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 173) Then
tmpA = Left(myString, intI - 1) & "í" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 141) Then
tmpA = Left(myString, intI - 1) & "Í" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 179) Then
tmpA = Left(myString, intI - 1) & "ó" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 147) Then
tmpA = Left(myString, intI - 1) & "Ó" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 186) Then
tmpA = Left(myString, intI - 1) & "ú" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 154) Then
tmpA = Left(myString, intI - 1) & "Ú" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 189) Then
tmpA = Left(myString, intI - 1) & "ý" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 157) Then
tmpA = Left(myString, intI - 1) & "Ý" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 166) Then
tmpA = Left(myString, intI - 1) & "æ" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 134) Then
tmpA = Left(myString, intI - 1) & "Æ" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 184) Then
tmpA = Left(myString, intI - 1) & "ø" & Right(myString, (Len(myString) - (intI + 1)))
ElseIf (Asc(Mid(myString, intI + 1, 1)) = 152) Then
tmpA = Left(myString, intI - 1) & "Ø" & Right(myString, (Len(myString) - (intI + 1)))
End If
End If
Next
EncodeChars = tmpA
End Function
mit eneste problem er at jeg ved ikke hvordan jeg kan tjekke for flere færøske bogstaver i navnet. Hvis man fx skriver æ, bliver det encodet rigtigt, men hvis jeg skriver æø, bliver det til æø..
Nogen der kan hjælpe med dette?
På forhånd tak..
// jih