2012-05-21 24 views
6

Sto cercando di visualizzare il testo arabo in java ma mostra caratteri indesiderati (Esempio: ¤ [ï߯ [î] o talvolta solo punti interrogativi quando stampo. Come faccio a stamparlo in arabo? Ho sentito che si tratta di unicode e UTF-8. Questa è la prima volta che lavoro con le lingue quindi non ne ho idea. Sto usando Eclipse Indigo IDE.Stampa stringa araba in java

MODIFICA: Se uso la codifica UTF-8, allora "¤ [ï߯ [î" caratteri stanno diventando "????????" personaggi.

+1

Si desidera stampare nell'applicazione desktop o nell'applicazione Web? –

+1

dove si stampa il tuo uotput? Nella console di Eclipse? attenzione, le linee di comando standard non supportano l'unicode. – Hurda

+0

La console di Eclipse sta semplicemente acquisendo l'output di un processo che * è * Unicode, Hurda. – Joey

risposta

7

Per cominciare potresti dare un'occhiata here. Questo dovrebbe consentire di creare unicode di stampa Eclipse nella sua console (che non so se è qualcosa che Eclipse supporta out-of-the-box senza ulteriori ritocchi)

Se questo non risolve il problema, molto probabilmente hai un problema con il codifica del programma sta utilizzando, così si potrebbe desiderare di creare stringhe in qualche modo simile a questo:

String str = new String("تعطي يونيكود رقما فريدا لكل حرف".getBytes(), "UTF-8");

questo almeno funziona per me.

+1

Ho provato con questo, ma ora mostra tutti i punti interrogativi .. –

+0

@ Chandu-Indyaah: Hai provato entrambi? Inoltre, a cosa stai cercando di stampare esattamente? Il metodo sopra ha funzionato per me in console e 'JFrame'. – npinti

+0

'.getBytes()' utilizza la codifica predefinita della piattaforma, che è essenzialmente un valore casuale. Convertire la stringa in byte e poi di nuovo è completamente ridondante se le codifiche corrispondono e corrompe la stringa in caso contrario. –

2

Se si incorpora il testo letteralmente nel codice, assicurarsi di impostare correttamente la codifica per il progetto.

+0

No, l'output proviene da una chiamata al servizio Web –

+3

In tal caso, è necessario utilizzare la codifica corretta per leggere dalla risposta del servizio web. – Joey

1

Questo è per Java SE, Java EE o Java ME? Se questo è per Java ME, è necessario creare GlyphUtils personalizzati se si utilizza LWUIT. Scarica questo file: lista http://dl.dropbox.com/u/55295133/U0600.pdf Look di codifica Unicode .. E guardate questa discussione: https://stackoverflow.com/a/9172732/1061371 nella risposta (post) di Mohamed Nazar che a cura di Alex Bernama Kliuchnikau, "Il codice di seguito può essere utilizzato per visualizzazione di testo arabo in J2ME String s=new String("\u0628\u06A9".getBytes(), "UTF-8"); dove \u0628\u06A9 è l'unicode di due lettere arabe " Guarda il file U0600.pdf, così possiamo vedere che Mohamed Nazar e Alex Kliuchnikau danno l'esempio per creare il carattere" ba "e" kaf "in arabo.

Quindi l'ultimo punto da considerare è: "Assicurati che l'UI supporti il ​​carattere unicode (intendo arabo)". Come LWUIT non supporta ancora unicode (intendo carattere arabo). Dovresti creare il tuo codice personalizzato se intendi che la tua app utilizza LWUIT.

+0

che non funziona – Error