Springen naar inhoud

Problemen met het weergeven van symbolen via unicode in java


  • Log in om te kunnen reageren

#1

Rob H

    Rob H


  • 0 - 25 berichten
  • 7 berichten
  • Gebruiker

Geplaatst op 28 juni 2008 - 17:40

Hallo,

Ik heb een probleem met Java VisualCafe:

Ik probeer een speciaal teken in te voegen in een textfield doormiddel van zijn unicode code. Het gaat hier om enkele tekens uit het onderdeel 'box drawing' van unicode. (specifiek: U+256C, U+2569, U+2566, U+2563 en U+2560)

De code voor één van deze tekens die ik in mijn applet heb is de volgende:
[codebox]textField1.setText("\u256c");[/codebox]

Het probleem is dat deze tekens niet goed weergegeven worden als ik de applet uitvoer. Ik krijg bij al deze tekens (en bij enkele willekeurige andere) een vraagteken te zien. De 'normale' symbolen (gewone latijnse letters en zo) doen het wel gewoon, maar deze symbolen worden niet goed weergegeven.

Hoe kan het dat Java deze tekens niet goed weergeeft?

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 03 juli 2008 - 16:44

Het probleem is dat deze tekens niet goed weergegeven worden als ik de applet uitvoer. Ik krijg bij al deze tekens (en bij enkele willekeurige andere) een vraagteken te zien. De 'normale' symbolen (gewone latijnse letters en zo) doen het wel gewoon, maar deze symbolen worden niet goed weergegeven.


Ik ervaar hetzelfde als ik een normale System.out.println doe op die codes.

Heb niet meteen een antwoord...

"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."


#3

Rogier

    Rogier


  • >5k berichten
  • 5679 berichten
  • VIP

Geplaatst op 03 juli 2008 - 17:51

Waarschijnlijk een kwestie van niet de juiste fonts geinstalleerd hebben (of niet de uitgebreide versies met allerlei unicode karakters). Als ik deze html test:
<html><body><script type='text/javascript'>
document.write("\u256c\u2569\u2569\u2566\u2563\u2560");
</script></body></html>
Krijg ik dit te zien: Geplaatste afbeelding in zowel Opera, Firefox als IE.

Zie hier tevens de reden om zulke tekens niet te gebruiken (tenzij de page alleen voor eigen gebruik is natuurlijk), want veel bezoekers zullen die fonts ongetwijfeld ook niet hebben :D
In theory, there's no difference between theory and practice. In practice, there is.

#4

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 03 juli 2008 - 18:05

Waarschijnlijk een kwestie van niet de juiste fonts geinstalleerd hebben (of niet de uitgebreide versies met allerlei unicode karakters). Als ik deze html test:

<html><body><script type='text/javascript'>
 document.write("\u256c\u2569\u2569\u2566\u2563\u2560");
 </script></body></html>
Krijg ik dit te zien: Geplaatste afbeelding in zowel Opera, Firefox als IE.

Zie hier tevens de reden om zulke tekens niet te gebruiken (tenzij de page alleen voor eigen gebruik is natuurlijk), want veel bezoekers zullen die fonts ongetwijfeld ook niet hebben :D


Da's javaSCRIPT hè...

dat wordt vertaald door de browser zelf. En alle browser kennen alle Unicode tekens. Wat we hier zoeken is(dacht ik toch) een manier om die tekens in Java programmatjes te doen voorkomen.

dus zonder
document.write()

"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."


#5

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 03 juli 2008 - 19:35

Volgens mij heeft rogier wel het juiste antwoord en komt het gewoon omdat jullie editor of programma een font gebruikt die dit teken niet bevat.

Veranderd door Cycloon, 03 juli 2008 - 19:39


#6

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 03 juli 2008 - 20:36

Volgens mij heeft rogier wel het juiste antwoord en komt het gewoon omdat jullie editor of programma een font gebruikt die dit teken niet bevat.


wat dacht je van de command box van windows?

Veranderd door Evil Lathander, 03 juli 2008 - 20:37

"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."


#7

Rogier

    Rogier


  • >5k berichten
  • 5679 berichten
  • VIP

Geplaatst op 03 juli 2008 - 21:34

Da's javaSCRIPT hè...

dat wordt vertaald door de browser zelf. En alle browser kennen alle Unicode tekens. Wat we hier zoeken is(dacht ik toch) een manier om die tekens in Java programmatjes te doen voorkomen.

dus zonder

document.write()

Tuurlijk, de browser snapt ongetwijfeld unicode, dus daarvoor maakt het niet uit wat je voor bizarre tekens gebruikt. Maar het font dat hij (c.q. je systeem) gebruikt om die tekst weer te geven bevat die tekens waarschijnlijk niet.

wat dacht je van de command box van windows?

Die gebruikt ansi, geen unicode. En toevallig gebruikt die default nou net een ansi encoding (CP437) waar die box drawing characters in zitten. Maar daar mis je weer andere tekens, probeer maar eens een letter À of Á (hoofdletter A met accent grave of aigu) op je command prompt te krijgen.
In theory, there's no difference between theory and practice. In practice, there is.

#8

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 03 juli 2008 - 21:58

wat dacht je van de command box van windows?


Zoals rogier al aanhaalde werkt de command prompt van windows nog met een achterlijk oude codering die maar 255 tekens kan weergeven.

Je kan het wel forceren door wat met instellingen te prutsen om de UTF-16 codering aan de praat te krijgen in de command prompt, maar dan moet ik je doorsturen naar google :D

#9

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 03 juli 2008 - 23:58

Zoals rogier al aanhaalde werkt de command prompt van windows nog met een achterlijk oude codering die maar 255 tekens kan weergeven.

Je kan het wel forceren door wat met instellingen te prutsen om de UTF-16 codering aan de praat te krijgen in de command prompt, maar dan moet ik je doorsturen naar google :D


je zou verwachten dat windows z'n producten up to date houdt...
HotChilicsshtmljavascriptmysqlphpCancelHotChiliundoCancel

"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."






0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures