2015-12-24 1 views
3

Après une autre git tirer mon projet a arrêté la construction avec tas de messages:erreur: caractère impossible à cartographier pour l'encodage UTF8 après GIT fusion

error: unmappable character for encoding UTF-8 

Les messages pointent vers le symbole du droit d'auteur trouvé dans certains des en-têtes des fichiers. Il y a beaucoup plus de fichiers avec le même symbole mais ils semblent bien se compiler. Lors de l'affichage dans l'éditeur binaire la bonne apparaît comme:

C2 A9

tout mauvais

A9

Lors de l'affichage dans vim les deux sont présentés comme © (< ©> 169, Hex 00a9 , Octal 251) mais IntelliJ Idea montre les mauvais comme diamant.

Alors j'ai décidé que j'ai foiré quelque chose lors de la fusion (il y avait des conflits de fusion après extraction) et sont allés chercher quels fichiers où changé avec

git diff-tree --no-commit-id --name-only -r --full-index --binary 91cbe7b753d39905372c1ea41e04e7a3dbd2566e 

mais il ne donne aucun résultat. Aucun changement trouvé pour le commit précédent aussi. Le journal ressemble à ceci:

commit 91cbe7b753d39905372c1ea41e04e7a3dbd2566e 
Merge: d7b4ae9 0dfc198 
Author: Me Me <[email protected]> 
Date: Wed Dec 23 17:50:46 2015 +0100 

    Merge branch 'development' of ssh://fsstash.cool.com:7999/our/server into my-branch 

commit 0dfc19850b2e31d72c1d2923321430e8fc1b53cb 
Merge: 724b8a7 d3478f9 
Author: Good Guy <[email protected]> 
Date: Wed Dec 23 14:34:33 2015 +0200 

    Merge branch 'development' of ssh://fsstash.cool.com:7999/our/server into development 

quand je fais git checkout 0dfc19850b2e31d72c1d2923321430e8fc1b53cb tout compile bien. Donc, la question est: comment puis-je résoudre ce problème? Par fix, je veux dire comprendre ce qui s'est passé et réappliquer les changements de tirage (peut-être) afin que je n'aie pas à commettre quelque chose en rapport avec ce correctif dans le repo en amont.

Il semble que le mauvais est UTF-16 (0x00A9) tandis que le bon est UTF-8 - (0xC2 0xA9). Qu'est-ce qui aurait pu le changer?

Le système de construction est maven, mais ce n'est pas la même erreur rapportée par bare javac sur le fichier copié et minifié. L'OS est ubuntu 15.10, les paramètres régionaux disent ceci:

locale 
LANG=ru_RU.UTF-8 
LANGUAGE=ru:en 
LC_CTYPE="ru_RU.UTF-8" 
LC_NUMERIC=ru_UA.UTF-8 
LC_TIME=ru_UA.UTF-8 
LC_COLLATE="ru_RU.UTF-8" 
LC_MONETARY=ru_UA.UTF-8 
LC_MESSAGES="ru_RU.UTF-8" 
LC_PAPER=ru_UA.UTF-8 
LC_NAME=ru_UA.UTF-8 
LC_ADDRESS=ru_UA.UTF-8 
LC_TELEPHONE=ru_UA.UTF-8 
LC_MEASUREMENT=ru_UA.UTF-8 
LC_IDENTIFICATION=ru_UA.UTF-8 
LC_ALL= 

java -version: 1.8.0_66.

Toute aide est fortement appréciée!

PS: avons tous essayés --diff algorithme = {patience | minimal | histogramme |} MYERS - toujours pas de changement trouvés par git-diff-tree

PS: git reset --hard HEAD~1, git pull origin developemnt émis à partir de la ligne de commande n'a pas aidé , donc pas lié à l'idée.

+0

Quel outil avez-vous utilisé pour résoudre les conflits? Vim? –

+0

non, IntelliJ Idea. – user656449

+0

essayez de remplacer le symbole du copyright comme le code d'échappement '& copy'. – seoyoochan

Répondre

1

le git diff-tree semblait être le mauvais diff à utiliser dans ce cas. Le git diff --name uniquement a35f25470bc8219e3f2a45316963dde660091bcb 0dfc19850b2e31d72c1d2923321430e8fc1b53cb

a révélé beaucoup de changements entre les branches et l'un d'entre eux mise à jour de la configuration maven-plugin-compilateur qui a changé la version java de 7 à 8. Et il semble que javac 8 traite le codage comme une erreur alors que 7 comme un avertissement (bien qu'il écrit absolument l'erreur "erreur: caractères non configurables pour ..." dans le journal