• 1
  • 2
2021-11-30, 21:46
  #13
Medlem
hashs avatar
Citat:
Ursprungligen postat av kjellbrel
Vet inte om du tycker att detta klarnat via de svar du ftt, d de ibland varit otydliga och delvis missvisande.

Javas fundamentala datatyp fr detta, char, representerar alltid Unicode. Ingenting annat. Javas String likas. Glm encodingformat helt hr. (*1)

Nr man av ngot skl vill hantera tecken utanfr dessa typers runtimelagring, i ex en fil, en ntverksstrm eller annat, s behver man omvandla dessa till ett transportformat. Frst hr kommer encoding och olika format in i bilden.

De metoder som omvandlar tecken till ett transportformat eller tvrtom omvandlar allts frn Unicode till ett encodingformat eller tillbaka. Vissa dr man anger format via metodparametrar och vissa med defaultformat. Detta r vl dokumenterat i javadoc:en fr Java Core API och vl vrt att kolla upp. Typen Charset anvnds fr encodingformat.

Encodingformatet UTF-16 r frvisso vldigt nra Unicode i sin lagring, men det r fortfarande 2 olika saker.

Med detta som grund s kan vi g igenom dina exempel steg fr steg:


Nej, den anvnder alltid Unicode. (*1)


Din myString r Unicode.
Anropet getBytes() ovan omvandlar frn Unicode till angivet format.
Din iso88591bytes r en array av bytes (inte tecken lngre) i encondingformatet "ISO-8859-1". (*2)
Konstruktorn ovan fr String omvandlar indata frn dess encodingformat till Unicode.
Din newMyString r Unicode.


DIn newString3 r Unicode.

(*1): De r specificerat i Javas sprkdefinition att det r Unicode som representeras i char och String. ven om det r teoretiskt mjligt att enl specifikationen fullflja definitionen och nd lagra tecken internt i en String i ngot annat format, s spelar det ingen roll. Alla metoder som jobbar med typen char i String, jobbar med Unicode i sitt grnsssnitt.

(*2): Detta frutsatt att plattformen accepterade det format du angav. Vissa format mste stdjas enl standarden, bland annat ISO-8859-1.

Tack fr ett bra svar.

Har gjort en workaround som tycks fungera, s case closed och tack till alla som har gett input till mig i denna trd.

Om ngon undrar vad min workaround r s har jag lagt till en extra codepage-converter process som skerstller att jag fr ut min nskade encoding.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in