2010-02-16 4 views
44

No puedo crear un directorio en ruso (UTF-8) usando vimscript en WinXP.Crear directorio con nombre UTF-8 en Vim

Por ejemplo

:call mkdir("привет") 

crea directorio con привет nombre en lugar de привет.

también he intentado

:call system("mkdir привет") 

con el mismo resultado.

¿Es posible?

+2

ajustar Tal vez la opción 'codificación' ayudaría? –

+0

2Laurence Gonsalves: sí, si configuré a 'cp1251' - supongo que usa el winxp ruso - entonces funciona. –

+0

2Laurence Gonsalves: Pero tengo que convertir 'привет' de UTF-8 a cp1251. ¿Hay alguna manera sin conversión explícita? –

Respuesta

19

encontrado.

debo utilizar iconv función:

:call mkdir(iconv("привет", "utf-8", "cp1251")) 
+5

Parece una mala práctica, dado que te estás mudando de UTF-8. Probablemente debería comprobar por qué los nombres UTF-8 no funcionan para usted. – dionyziz

+2

@dionyziz, probablemente la respuesta es porque está en WinXP y la configuración regional del sistema es cp1251 y no hay forma de configurarlo en utf-8. –

30

probar esto

:!mkdir "привет" 
+0

El mismo resultado -'РїСЂРёРІРμμ,,, –

64

Lo que suelo hacer es que cambiar al modo de explorador con :Explore y pulse d. Me pide el nombre del directorio, entonces.

+0

Necesito que esto funcione en un vimscript. –

1

Puede cambiar encod. Añadir: 65001

chcp 65001 
:call mkdir("привет") 

chcp - UTF-8

+0

¿Quiere decir que configuró la consola para usar UTF-8 (ejecute 'chcp 65001' en la consola) y solo luego ejecuta Vim? Como referencia, [65001 es la pseudo-página de códigos para usar UTF-8] (// stackoverflow.com/a/1629454/2157640). – Palec