29. juni 2003 - 12:44Der er
6 kommentarer og 1 løsning
Skriv unicode streng som f.eks."abcd\u044F\u0449,ert\u0431\u043B"
Jeg skal danne flade filer til load af DB (Pointbase). Data er unicode encoded, og tegn udover ansi-tegn skal skrives i filen som \uxxxx for at load kan ske problemfrit. F.eks. skal strengen "abc??,ert??" skrives som "abc\u044F\u0449,ert\u0431\u043B". Skal jeg læse strengene char for char og teste med f.eks. isUnicodeIdentifierStart(char), eller har jeg overset en metode der kan klare dette.
Java har efterhånden fået hånd om internationaliseringen, men jeg synes stadig, at jeg bruger en del spildtid på at løse konverteringsproblemer når der er flere produkter involveret. Jeg håbede, at Pointbase database-serveren kunne spare mig for dette, da den er kodet i Java. Men der mangler vist stadig et på versioner, før dette er nået. Du kan f.eks. tast unicode tekst ind i GUI-consolen, men gemmer du din query, gemmes det i ansi!
Carsten, jeg havde ikke set at Java SDK indeholdt native2ascii.exe. Den ser ud til at kunne klare jobbet, med følgende bemærkninger
Gemmes tekst i Win XP (f.eks. med notepad)
a) som unicode, får tekst-filen en to byte header FF FE. Med kommandoen native2ascii -encoding unicode testunicode_in.txt testunicode_out.txt får jeg det ønskede resultat. Men hvis jeg 'glemmer' encoding-option'en så oversætter programmet headeren FF FE, mens resten blot kopieres!
b) som utf-8, får tekst-filen en tre byte header EF BB BF. Kommandoen native2ascii -encoding utf8 testutf8_in.txt testutf8_out.txt oversætter alt incl. headeren. Fjernes headeren inden konverteringen får jeg det ønskede output, også selv om jeg glemmer -encoding option'en
Metoden er fin til de indledende tests, men jeg vil nok ende op med at benytte Arne's forslag, da jeg bl. a. også ønsker at styre "" omkring tekst. Derfor er der 15 point til jer hver.
Jeg synes faktisk at der stadig er mange karakter-sæts problemer specielt med UTF-8 versus ISO-8859-1 på Linux.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.