Umwandlungen (Satzzeichen)
Übersicht

![]() |
Mathias-KwiatkowskiBetreff: Umwandlungen (Satzzeichen) |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich weiß gar nicht wie ich mein problem beschreiben soll. ich lasse eine webseite nach einem namen suchen...
So wird es auf der webseite angezeigt: •ΛЦЯØŘΛ• im sorce steht es allerdings so: â¢ÎЦЯÃÅÎ⢠wie genau ist den nun die umwandlung? also von dem ersten in dem zweiten? weil das untere also das zweite ist es was ich brauche. ich hoffe das ich mein problem gut beschrieben habe und das es hier auf der webseit so angezeigt wird wie es soll^^... |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
hat das vielleicht was mit UTF zu tun? Brucey hat mir mal geschrieben dass man bei LoadFile so ne Art "UFT-Header" vor den String setzen kann:
BlitzMax: [AUSKLAPPEN] Local Stream:TStream Das war bei mir für Tschechisch und Russisch notwendig. Weiß aber nicht ob das irgendwas mit deinem Problem zu tun hat.... |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
was wäre wenn ich es im string habe? und nich als stream?
(es hat voll was mit mein prob zu tun^^) |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
also, wenn ich den quelltext der Internetseite http://www.bigpoint.com/darkor...pvm.95313/ als html speichere und ihn dann in EditPad Pro wieder öffne, sehe ich noch die Originalzeichen wie auf der Homepage. Wandeln ich dann dort das ganze in "ASCII + Unicode-Escapes" wird ziemlich genau das daraus, was Du in deinem Quellcode siehsts:
|
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
das stimmt wohl nur habe ich kein plan wie ich etwas was in einem string steht umwandeln kann.
muss ich die satzzeichen dafür selbst eingeben? und den string durchlaufen lassen? und dann ein neuen string basteln? |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Woher kommt/kam denn der zweite String? So wie ich das sehe, bedeutet beides inhaltlich das gleiche. Es handelt sich nur um eine andere Darstellung (andere UTF-Codierung)....
Beschreibe bitte nochmal genau was Du erreichen willst? Ist der erste oder der zweite Text die für Dich "brauchbare" Form. Was ist das Ziel deines Programm-Codes? |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja und ich wollte wissen wie ich das in der anderen darstellung umwandle natürlich von bm aus...
der 2. string kommt von -< curl >- |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
hilft denn ein Umweg über einen Stream nicht weiter? Oder abspeichern/wiederladen? Wie gesagt, da kannst Du bestimmte Codierungswünsche als Header vornedran stellen... | ||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
Die Webseite sollte das Charset angeben, hoffentlich <meta charset="utf-8"> - Dein Editor sollte die Zeichen als UTF-8 interpretieren können (sieht danach aus, als würde eins von beidem nicht der Fall sein). |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
stimmt, mein editor muss es umwandeln, aber wie... muss ich das charset irgendwie eingeben? oder kann man ein modul laden was es übernimmt? oder kann es blitz von selbst irgendwie ^^?
kenn mich damit 0 aus also mit chartset ect. und mit utf-8 was ich gefunden habe (was aber nicht funktioniert) Code: [AUSKLAPPEN] Function UTF8:String(Unicode:String)
Local RESULT$="" For Local i:Int = 1 To Len(Unicode:String) Local Char$=Mid$(Unicode$,i,1) If Asc(Char$)<128 result$=result$+char$ ElseIf Asc(Char$)>127 And Asc(Char$)<2048 Local Bytes$=Right$(Bin$(Asc(Char$)),11) Local Byte1$="110"+Left$(Bytes$,5) RESULT:String = RESULT:String + Chr(Bin2Int(Byte1:String)) Local Byte2$="10"+Right$(Bytes$, 6) Result$=Result$+Chr(Bin2Int(Byte2$)) Else Local Bytes$=Right$(Bin$(Asc(Char$)),16) Local Byte1$="1110"+Left$(Bytes$,4) Result$=Result$+Chr(Bin2Int(Byte1$)) Local Byte2$="10"+Mid$(Bytes$, 5, 6) Result$=Result$+Chr(Bin2Int(Byte2$)) Local Byte3$="10"+Right$(Bytes$, 6) Result$=Result$+Chr(Bin2Int(Byte3$)) EndIf Next Return Result$ EndFunction Function Bin2Int:Int(Binary:String) Local result:Int = 0 Local D:Int = 1 For Local i:Int = Len(Binary:String) To 1 Step - 1 If Mid:String(Binary:String, i, 1) = "1" Then result = result + d D = D + D Next Return result EndFunction |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuch mal das/der https://de.wikipedia.org/wiki/Byte_Order_Mark zu verwenden beim Speichern der Datei von BlitzMax.
Code: [AUSKLAPPEN] WriteByte($EF)
WriteByte($BB) WriteByte($BF) |
||
Windows 7 Home Premium 64bit
CPU: Intel Core i5 3450 Ivy Bridge GPU: HIS HD 4870 1GB GDDR5 RAM: 4x 4GB DDR3-SDRAM Dual Channel |
sinjin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich schliesse mich Midimaster an, den Stream musst du ja nicht auf "Diskette" speichern, man kann doch eine Bank im Speicher anlegen und darauf nen Stream anwenden? Nichts passiert auf der Festplatte, nur im Speicher. | ||
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
habe eine lösung gefunden, sieht scheinbar auch gut aus.
habs nun paar tage getestet und ich bin zufrieden, für alle die es interessiert. die funktion ist nicht von mir. ich habe irgendwo auf google gesammelt ^^... daher danke am uhrheber wer es auch immer sei... Code: [AUSKLAPPEN] Function UTF8:String(Unicode:String)
Local text:String = unicode Local array:Byte[text.length] For Local i:Int = 0 Until text.length array[i] = text[i] Next Local dec_text:String = TUTF8.utf8ToString(array) Local utf8_text:String For Local i:Int = 0 Until dec_text.length Local res:Byte[] = TUTF8.fromInt(dec_text[i]) For Local b:Int = EachIn res utf8_text:+Chr(b) Next Next Return dec_text EndFunction Type TUTF8 Function getlength:Int(i:Int) Select True Case i<$7f Return 1 Case i=>$7f And i<$7ff Return 2 Case i >= $7ff And i < $ffff Return 3 Case i=>$ffff And i<$1fffff Return 4 Case i=>$1fffff And i<$3ffffff Return 5 Case i=>$3ffffff And i<$7ffffff Return 6 End Select End Function Function fromInt:Byte[](code:Int) Local value:Byte[] Local length:Int = getlength(code) value = New Byte[length] Select length Case 1 value[0] = code Case 2 value[0] = 192+(code/64) value[1] = 128+(code Mod 64) Case 3 value[0] = 224+(code/4096) value[1] = 128+((code/64) Mod 64) value[2] = 128+(code Mod 64) Case 4 value[0] = 240+(code/262144) value[1] = 128+((code/4096) Mod 64) value[2] = 128+((code/64) Mod 64) value[3] = 128+(code Mod 64) Case 5 value[0] = 248+(code/16777216) value[1] = 128+((code/262144) Mod 64) value[2] = 128+((code/4096) Mod 64) value[3] = 128+((code/64) Mod 64) value[4] = 128+(code Mod 64) Case 6 value[0] = 252+(code/1073741824) value[1] = 128+((code/16777216) Mod 64) value[2] = 128+((code/262144) Mod 64) value[3] = 128+((code/4096) Mod 64) value[4] = 128+((code/64) Mod 64) value[5] = 128+(code Mod 64) End Select Return value End Function Function utf8ToString:String(_data:Byte[]) Local length:Int,str:String,b:Int,x:Int For Local i:Int = 0 Until _data.length b=_data[i] length = getlength(b) If (i+length-1)>_data.length Exit Select length Case 1 x=b Case 2 x=( ((b-192)*64) + (_data[i+1]-128) ) Case 3 x=( ((b-224)*4096) + ((_data[i+1]-128)*64) + (_data[i+2]-128) ) Case 4 x=( ((b-240)*262144) + ((_data[i+1]-128)*4096) + ((_data[i+2]-128)*64) + (_data[i+3]-128)) Case 5 x=( ((b-248)*16777216) + ((_data[i+1]-128)*262144) + ((_data[i+2]-128)*4096) + ((_data[i+3]-128)*64) + (_data[i+4]-128)) Case 6 x=( ((b-252)*1073741824) + ((_data[i+1]-128)*16777216) + ((_data[i+2]-128)*262144) + ((_data[i+3]-128)*4096) + ((_data[i+4]-128)*64) + (_data[i+5]-128)) End Select str:+Chr(x) i:+(length-1) Next Return str End Function End Type |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group