java, bbedit - text encoding

Tråden skapades och har fått 8 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2003-03-27 17:59

Hej!
Har lite problem med mitt java proggande.

När jag skriver min kod i BBEdit så kan jag välja bland en hejdundrans massa 'text encodings' när jag sparar min fil. I terminalen kan jag i Window Settings-->Display-->Character Set Encoding välja mellan ett par också...
Sen så tror jag att java compiler använder sig av en egen encoding när den kompilerar mina .java filer tll bytekode.
Så här står det vid 'man javac':

encoding
Sets the source file encoding name, such as
EUCJIS/SJIS. If -encoding is not specified, the
platform default converter is used.

Så, var ställer jag in 'platform default converter' ?

Jag har läst att java använder sig av Unicode men sedan tar det stopp. Vilken jäkla Unicode då? Använder jag Unicode(UTF-8, no BOM) så kan jag kompilera min kod och jag kan även använda åäöÅÄÖ i i mina System.out.println() och tecknen visas korrekt i terminalen. Därimot kan jag inte döpa metoder med åäöÅÄÖ vilket tyder på att något inte är rätt.

Någon som har stenkoll på detta som vill dela med sig lite?

Så här ser det förresten ut i bbedit

  • Medlem
  • Höganäs
  • 2003-03-27 19:42

Stenkoll och stenkoll...

När jag skrev enkla Javaprogram för kompilering i Terminal, gjorde jag inga ändringar alls vad gäller BBEdit, och Terminal ställde jag in på "Västerländsk (Mac OS Roman)".

Funkar bra och ÅÄÖ visas OK.

Varför döpa metoder med ÅÄÖ ? Det kan du ju undvika (?)

/Micke

  • Medlem
  • Stockholm
  • 2003-03-27 23:49

Argumentet att undvika åäö i metodnamn känns ohållbart. Tänk om något annat också konverteras fel?
Jag får nämligen småmysko fel här hemma som oftast fungerar utmärkt på skolans debian burkar.

Vad är default i BBEdit då?
Vad som är mest intressant är väl vilken encoding som javac vill ta emot filen med..

Fungerar det inte med ISO Latin-1?

En Javaidentifierar i kan kodas i Unicode. Men, den måste bestå av JavaLetters och/eller JavaDigits. JavaLetters består av a-z, A-Z,"_" och "$". JavaDigits är 0-9.

Lite förenklat: Nmange på engelska. Strängar och liknade som skall skrivas ut kan (självklart) vara på svenska med åäö, japanska tecken eller vadhelst Unicode.

Min personliga åsikt är att kommentarer och allt som är tänkt att läsas av andra programmerare skall vara på engelska. Output och användarmellomtryne-kod måste så klart vara lokaliserat till rätt språk.

Senast redigerat 2003-03-28 10:17

Här blev jag lite förvirrad själv, jag var säker på att man inte kunde ha åäö i metodnamnen. Men när jag provade så fungerade det utmärkt. Skrev ett litet testprogram i Netbeans 3.4.1 under Windows XP.

  • Medlem
  • Stockholm
  • 2003-03-28 17:55

Det är ju just det. Det fungerar UTMÄRKT med åäö ÅÄÖ i metodnamnen. Det SKA fungera utmärkt.

Jag emailade hem lite javasnuttar jag gjort i skolan. Hade inget metodnamn med åäöÅÄÖ men jag hade en utskrift med dessa. Den utskriften fungerade utmärkt i skolan men inte här hemma på macen.

Jag undrar om det inte är något vajse med vilken encoding javac vill använda sig av?

Vad händer om du använder ISO-Latin 1? Fungerar det inte då? Java använder ju unicode internt, men källkoden som kompileras med javac kan ju vara 8-bitars kodning. UTF-8 använder sig väl av 1 eller flera byte för varje unicode tecken. Allt under 0x80 är väl 1 byte, medan andra tecken kodas som 2 eller 3 bytes.

  • Medlem
  • Stockholm
  • 2003-03-28 20:09

Du har så rätt!

Jag testade faktiskt nyligen (5min sedan!) att spara med Western (ISO-Latin 1) men fick då inte utskrifterna i terminalen att visa åäö men däremot kunde jag nu ha metoder med åäö med i namnet.

Kom snabbt på att jag måste ändra terminalens "Character Set Encoding" ... och efter att ha ändrat även denna till ISO-Latin 1 så fungerade det utmärkt!

Så nu är man toppenglad igen!

Tack för hjälpen !

1
Bevaka tråden