2012-08-08 5 views
11

Sto ottenendo il seguente messaggio di errore quando si tenta di confrontare il mio progetto in Eclipse (Team-> Confronto):Impossibile convertire la stringa da 'UTF-8' per la codifica nativa

(non può convertire la stringa da 'UTF-8' a codifica nativa)

*** 
diff --old /Users/admin/Documents/workspace_branch_2.8/Test --new https://192.168.1.202/svn/main_repository/tenios/Voxtelo/bundle/trunk/Server/Test 
    Invalid argument 
svn: Kann Zeichenkette nicht von »UTF-8« in die eigene Codierung konvertieren: 
svn: 
Eigenschafts?\195?\164nderungen: /Users/admin/Documents/workspace_branch_2.8/Test/src/main/java/org/test/test/internal/commands/Command.java 

ZM-Schicht Anforderung gescheitert 
svn: Fehler beim Lesen der Antwort auf die REPORT Anfrage von Festplatte 
*** 

Tuttavia, se si esegue il comando:

svn diff --old /Users/admin/Documents/workspace_branch_2.8/Test --new https://192.168.1.202/svn/main_repository/tenios/Voxtelo/bundle/trunk/Server/Test 

utilizzando riga di comando su mac os, il diff funziona senza problemi. Da quanto ho letto, errori come questo si verificano in genere quando il client ha ricevuto una stringa in UTF-8 dal repository, ma non tutti i caratteri di quella stringa possono essere visualizzati nella codifica delle impostazioni locali correnti. L'uscita di "locale" è:

LANG="de_DE.UTF-8" 
LC_COLLATE="de_DE.UTF-8" 
LC_CTYPE="de_DE.UTF-8" 
LC_MESSAGES="de_DE.UTF-8" 
LC_MONETARY="de_DE.UTF-8" 
LC_NUMERIC="de_DE.UTF-8" 
LC_TIME="de_DE.UTF-8" 
LC_ALL= 

Sembra che eclisse non fa uso di queste impostazioni, c'è un altro modo per configurare impostazioni locali in Eclipse? Non sono sicuro, ma forse il problema è legato a javaHL, c'è un file di traccia da qualche parte?

+0

Cosa dice quando si eseguono Proprietà progetto -> Risorsa -> Codifica file di testo? – artbristol

+0

Dice ereditato dal contenitore UTF-8 – markus

risposta

5

JavaHL è solo un wrapper per SVN. Come vedo io JavaHL chiama il comando svn (svn diff ...) e analizza il messaggio restituito. Il comando che provi ad eseguire restituisce le informazioni che in questa diff hanno cambiato alcune proprietà (in tedesco Eigenschaftsänderung). Sfortunatamente il terminale che gestiva la chiamata incasinò la codifica. Il risultato è una "richiesta di livello RA non riuscita" (ZM-Schicht Anforderung gescheitert) che significa semplicemente che JavaHL non è stato in grado di analizzare il messaggio restituito.

cose che potete provare:

  1. inizio Eclipse con LC_MESSAGES="en_US.UTF-8" /path/to/eclipse/eclipse e forse JavaHL chiamerà l'eseguibile svn con messaggi in inglese

  2. di controllo del terminale da cui si inizia Eclipse. Supporta l'unicode? (rxvt non lo fa, dove fa urxvt)

    digitare ä nel terminale e controllare l'uscita. Dovresti vedere il ä come personaggio leggibile. Come puoi vedere dalla mia uscita il carattere dovrebbe essere codificato come \ 303 \ 244 e non \ 195 \ 164 (303 è la rappresentazione ottale per 195 in decimale e 244 (ott) == 164 (dec))

    $ ä 
    bash: $'\303\244': command not found 
    
    $ ä 
    bash: $'\303\244': command not found 
    

Spero che questo aiuti.

+0

inizio eclissi con LC_MESSAGE = "de_DE.UTF-8"/percorso/a/eclipse/eclipse risolto il problema – markus

+0

de_DE? è corretto? –

+0

sì LC_MESSAGES = "de_DE.UTF-8" – markus