& # 8220; svnlook cambiado & # 8221; codificación
-
03-07-2019 - |
Pregunta
Cuando ejecuto el siguiente comando:
svnlook cambió {ruta} -r {rev}
donde {ruta} es la ruta del repositorio y {rev} es el número de revisión, obtengo el siguiente resultado:
U trunk / this / is / a / path / Mon fichier avec un nom accentu, .txt
El resultado debería ser:
U trunk / this / is / a / path / Mon fichier avec un nom accentu & # 233; .txt
El " & # 233; " y otros caracteres acentuados no se muestran correctamente ...
¿Hay alguna forma para que svnlook muestre caracteres correctamente?
Sé que puedo usar " svn log " con el " - xml " opción para obtener la codificación adecuada, pero necesito esto para un enlace previo al compromiso, y svn.exe solo puede obtener información de las revisiones, no de las transacciones.
Gracias
Solución
El problema que tiene aquí es que su enlace previo al compromiso lo ejecuta el binario Subversion, que por razones de seguridad pasa un entorno vacío al script de enlace. Entre las cosas que hace un entorno vacío es eliminar cualquier configuración regional específica, volviendo a la configuración predeterminada del sistema (generalmente 'C' o algo similar).
Para obtener la salida correcta de svnlook
, debe restaurar el entorno que le interesa antes de ejecutarlo. Si su script es bash, tal vez algo como:
#!/bin/bash
export LANG="en_US.UTF-8"
export PATH="/bin:/usr/bin"
# Run svnlook here and get UTF-8 encoded output
En general, cualquier configuración regional con el sufijo '.UTF-8' debería estar bien. Dado que parece ser un hablante francés, la configuración regional 'fr_FR.UTF-8' sería una configuración razonable.
Otros consejos
Deberías intentar invocar esto:
export LANG="fr_FR"
(o el idioma de su desarrollador) antes de usar svnlook. También puede establecer un idioma predeterminado en las secuencias de comandos de inicio de su shell, para que no tenga que exportarlo cada vez.