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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top