Pytanie w sprawie java, eclipse – Wydrukuj arabski ciąg w java

7

Próbuję wyświetlić tekst arabski w Javie, ale pokazuje on znaki-śmieci (Przykład: ¤ [ï߯ [î) lub czasami tylko znaki zapytania podczas drukowania. Jak zrobić to, aby wydrukować arabski. Słyszałem, że to coś związane z Unicode i UTF-8. Po raz pierwszy pracuję z językami, więc nie mam pojęcia. Używam środowiska Eclipse Indigo IDE.

EDYCJA: Jeśli używam kodowania UTF-8, wtedy znaki „¤ [ï߯ [î” stają się „????????” postacie.

gdzie drukujesz swój uotput? Do konsoli Eclipse? uważaj, że standardowe linie poleceń nie obsługują Unicode. Hurda
Czy chcesz drukować w aplikacji komputerowej lub aplikacji internetowej? Bhavik Ambani
@Hurda: Masz rację. Wszelkie alternatywy, dzięki którym mogę je wydrukować na konsoli lub po prostu upewnić się, że dane wyjściowe są prawidłowe! Chandra Eskay
@ BhavikAmbani: Jego aplikacja internetowa Chandra Eskay

Twoja odpowiedź

3   odpowiedź
1

To jest dla Java SE, Java EE lub Java ME? Jeśli jest to Java ME, musisz użyć niestandardowego GlyphUtils, jeśli używasz LWUIT. Pobierz ten plik:http://dl.dropbox.com/u/55295133/U0600.pdf Zobacz listę kodowania Unicode .. I spójrz na ten wątek:https://stackoverflow.com/a/9172732/1061371 w odpowiedzi (post) Mohameda Nazara, edytowanej przez bernama Alexa Kliuchnikau: „Poniższy kod może być użyty do wyświetlania arabskiego tekstu w J2MEString s=new String("\u0628\u06A9".getBytes(), "UTF-8"); gdzie\u0628\u06A9 to unicode dwóch arabskich liter „Spójrz na plik U0600.pdf, więc widzimy, że Mohamed Nazar i Alex Kliuchnikau dają przykład tworzenia postaci„ ba ”i„ kaf ”w języku arabskim.

Ostatnim punktem, który musisz rozważyć, jest: „Upewnij się, że interfejs użytkownika obsługuje znaki Unicode (mam na myśli język arabski)”. Jak LWUIT nie obsługuje jeszcze znaków Unicode (mam na myśli język arabski). Powinieneś stworzyć swój własny kod, jeśli masz na myśli, że Twoja aplikacja korzysta z LWUIT.

to nie działa Error
2

Jeśli dosłownie umieścisz tekst w kodzie, upewnij się, że kodowanie dla twojego projektu jest prawidłowe.

W takim przypadku należy użyć poprawnego kodowania, aby odczytać odpowiedź usługi sieciowej. Joey
Nie, dane wyjściowe pochodzą z wywołania usługi internetowej Chandra Eskay
7

Na początek możesz rzucić okiemtutaj. Powinno to pozwolić na drukowanie w konsoli Eclipse Unicode (co nie wiem, czy jest to coś, co Eclipse obsługuje poza pudełkiem bez żadnych dodatkowych poprawek)

Jeśli to nie rozwiąże twojego problemu, najprawdopodobniej masz problem z kodowaniem używanym przez twój program, więc możesz chcieć utworzyć ciągi znaków w podobny sposób:

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

To przynajmniej działa dla mnie.

.getBytes() używa domyślnego kodowania platformy, które jest zasadniczo wartością losową. Konwersja łańcucha znaków na bajty, a następnie powrót, jest całkowicie zbędna, jeśli kodowanie jest zgodne i powoduje uszkodzenie łańcucha, jeśli nie. Christoffer Hammarström
Próbowałem tego, ale teraz wyświetlają się wszystkie znaki zapytania. Chandra Eskay
@ Chandu-Indyaah: Czy próbowałeś ich obu? Do czego dokładnie próbujesz drukować? Powyższa metoda działała dla mnie w konsoli iJFrame. npinti

Powiązane pytania