/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Tegnsæt i Java
Fra : Henrik Stidsen


Dato : 30-03-03 22:41

Kører Java ikke med UTF8 tegnsæt eller har jeg set noget forkert et
sted ?

Anyway, hvis jeg kører min javaapplikation i IDE´en (Kawa) viser den
æøå fint, kører jeg den i DOS viser den dem ikke rigtigt... (det er
samme maskine).

Hva går der galt ?

--
..: Henrik Stidsen - HS235.dk - http://hs235.dk ::...
"You know the world is going crazy when the best rapper is a white
guy, the best golfer is a black guy, France is accusing the US of
arrogance and Germany doesn't want to go to war."

 
 
Mikkel Bundgaard (30-03-2003)
Kommentar
Fra : Mikkel Bundgaard


Dato : 30-03-03 23:31

On Sun, 30 Mar 2003 21:41:10 +0000, Henrik Stidsen wrote:

> Anyway, hvis jeg kører min javaapplikation i IDE´en (Kawa) viser den
> æøå fint, kører jeg den i DOS viser den dem ikke rigtigt... (det er
> samme maskine).
Problemet ligger ikke hos Java, men hos DOS. Din DOS bruger sikkert
codepage 850 (cp850) og ikke et ISO-Latin baseret tegnsæt. Derfor har du
to (måske flere) muligheder:

Under NT (og dermed sikkert også på XP og 2000) kan man vist skifte
codepage i DOS prompten med "chcp 1252" (og 1252 kan vist bruges som
iso-8859-1, selvom den ikke er helt kompatibel på alle tegn).

Brug en dekoreret out. I nedenstående kode erklæres out som værende en
PrintWriter, der udskriver med en cp850 indkodning.
PrintWriter out = new PrintWriter(
new OutputStreamWriter(System.out,"cp850"));
så skal du bare bruge out i stedet for System out (dvs. out.println(...) i
stedet for System.out.println(...) ).
--
Mikkel Bundgaard
Student at IT University of Copenhagen
Codito, Ergo Sum

Henrik Stidsen (31-03-2003)
Kommentar
Fra : Henrik Stidsen


Dato : 31-03-03 16:43

"Mikkel Bundgaard" <mikkelbu@teliamail.dk> wrote in
news:pan.2003.03.30.22.30.37.126784@teliamail.dk

> Problemet ligger ikke hos Java, men hos DOS. Din DOS bruger
> sikkert codepage 850 (cp850) og ikke et ISO-Latin baseret
> tegnsæt. Derfor har du to (måske flere) muligheder:

Jeps, det er lige præcis den den bruger.

> Under NT (og dermed sikkert også på XP og 2000) kan man vist
> skifte codepage i DOS prompten med "chcp 1252" (og 1252 kan vist
> bruges som iso-8859-1, selvom den ikke er helt kompatibel på
> alle tegn).

Jeg bruger ME (endnu) og den kan kun vise det frem via chcp.
MSconfig kan skifte det, jeg skiftede til 1252 og det gik helt galt,
der blev ændret masser af andre tegn uden at det havde nogen som
helst effekt på java outputtet.

> Brug en dekoreret out. I nedenstående kode erklæres out som
> værende en PrintWriter, der udskriver med en cp850 indkodning.
> PrintWriter out = new PrintWriter(
> new OutputStreamWriter(System.out,"cp850"));
> så skal du bare bruge out i stedet for System out (dvs.
> out.println(...) i stedet for System.out.println(...) ).

Lyder letter avanceret...

import java.io.*;

class TegnTest
{
   public static void main(String[] args) throws IOException
   {
      PrintWriter out = new PrintWriter(
           new OutputStreamWriter(System.out,"cp850"));
      
      out.println("Dette er en test : æøåÆØÅ");
   }
}

Givet intet output...

--
..: Henrik Stidsen - HS235.dk - http://hs235.dk ::...
"You know the world is going crazy when the best rapper is a white
guy, the best golfer is a black guy, France is accusing the US of
arrogance and Germany doesn't want to go to war."

Mikkel Bundgaard (31-03-2003)
Kommentar
Fra : Mikkel Bundgaard


Dato : 31-03-03 21:52

On Mon, 31 Mar 2003 15:43:15 +0000, Henrik Stidsen wrote:

>> Problemet ligger ikke hos Java, men hos DOS. Din DOS bruger
>> sikkert codepage 850 (cp850) og ikke et ISO-Latin baseret
>> tegnsæt. Derfor har du to (måske flere) muligheder:
>
> Jeps, det er lige præcis den den bruger.
>
>> Under NT (og dermed sikkert også på XP og 2000) kan man vist
>> skifte codepage i DOS prompten med "chcp 1252" (og 1252 kan vist
>> bruges som iso-8859-1, selvom den ikke er helt kompatibel på
>> alle tegn).
>
> Jeg bruger ME (endnu) og den kan kun vise det frem via chcp.
> MSconfig kan skifte det, jeg skiftede til 1252 og det gik helt galt,
> der blev ændret masser af andre tegn uden at det havde nogen som
> helst effekt på java outputtet.
Jeg bruger ikke mere Windows, så hvis du vil gå denne vej må en anden
træde til ellers google lidt

>> Brug en dekoreret out. I nedenstående kode erklæres out som
>> værende en PrintWriter, der udskriver med en cp850 indkodning.
>> PrintWriter out = new PrintWriter(
>> new OutputStreamWriter(System.out,"cp850"));
>> så skal du bare bruge out i stedet for System out (dvs.
>> out.println(...) i stedet for System.out.println(...) ).
>
> Lyder letter avanceret...
>
> import java.io.*;
>
> class TegnTest {
> public static void main(String[] args) throws IOException {
> PrintWriter out = new PrintWriter(
>            new OutputStreamWriter(System.out,"cp850"));
>       
> out.println("Dette er en test : æøåÆØÅ");
// Prøv at flushe strømmen
out.flush();
> }
> }
>
> Givet intet output...
Se kommentar i koden
out.flush();
(det burde løse problemet ellers prøv at fange evt. exceptions og se om
det giver noget).
--
Mikkel Bundgaard
Student at IT University of Copenhagen
Codito, Ergo Sum

Henrik Stidsen (01-04-2003)
Kommentar
Fra : Henrik Stidsen


Dato : 01-04-03 19:50

"Mikkel Bundgaard" <mikkelbu@teliamail.dk> wrote in
news:pan.2003.03.31.20.51.31.190865@teliamail.dk

> Se kommentar i koden
> out.flush();

Nu virker det - men tegnsættet i IDE´en viser firkanter istedet :)

Tror bare jeg dropper det, så vigtigt er det heller ikke lige nu.

--
..: Henrik Stidsen - HS235.dk - http://hs235.dk ::...
"You know the world is going crazy when the best rapper is a white
guy, the best golfer is a black guy, France is accusing the US of
arrogance and Germany doesn't want to go to war."

Allan Unnerup (05-04-2003)
Kommentar
Fra : Allan Unnerup


Dato : 05-04-03 20:18

> Kører Java ikke med UTF8 tegnsæt eller har jeg set noget forkert et
> sted ?

Ja, du har set forkert. Java benytter 16 bit unicode internt.

Med venlig hilsen
Allan



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408903
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste