Domanda

Stiamo implementando i18n utilizzando JSTL e abbiamo riscontrato un problema secondo il quale i testi delle risorse definiti nel file .properties e con caratteri non ISO 8859 (ad es. linguaggi inidici) non possono essere riprodotti dal tag.

Dopo aver analizzato il codice del tag e la classe BundleHelper, alla fine abbiamo scoperto che utilizza internamente il metodo ResourceBundle.getBundle che a sua volta utilizza PropertyResourceBundle per caricare il file .properties come pacchetto di risorse.

Si basa internamente sul metodo java.util.Properties # load (InputStream) che non supporta la lettura di caratteri non ISO 8859 e l'unica soluzione è rappresentare tali caratteri in / u esadecimale esadecimale formato esadecimale, che è piuttosto impraticabile nel caso in cui l'intero file .properties sia in lingua hindi!

C'è qualche soluzione per questo. Ho provato a utilizzare il formato XML nel file .properties ma non è stato riconosciuto da PropertyResourceBundle!

I dettagli sull'ambiente sono: Jdk 1.5, Weblogic 9.2

È stato utile?

Soluzione

Devi assolutamente avere per usare JDK 1.5? Se potessi spostarti fino alla 1.6, potresti usare il sovraccarico load (Reader) che ti permetterebbe di archiviare i file in altre codifiche (ad esempio UTF-8). Non sono sicuro di come si adatterebbe con PropertyResourceBundle, lo ammetto.

Non dimenticare che anche lavorando con i file ISO-8859-1, non è necessario utilizzare quel formato per modificare il file. Puoi utilizzare native2ascii per convertire un file da una codifica diversa. Mantieni la tua " fonte " file delle proprietà come UTF-8, quindi esegui native2ascii come parte della tua build. Ad esempio:

native2ascii -encoding UTF-8 Foo.properties.utf8 Foo.properties

Altri suggerimenti

Scrivi i tuoi file con la codifica che preferisci ed eseguili attraverso native2ascii (che viene fornito con JDK esattamente per questo scopo) come parte del processo di compilazione o distribuzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top