Estoy escribiendo una pequeña aplicación en VB.net que me permitirá crear fácilmente una "cuenta de Windows 7" de usuario con una contraseña, en lugar de pasar por el panel de control. El problema que tengo es que cuando creo un archivo bat en VB.net usando la codificación UTF-8, no escribe å ä ö como se supone que debe ser. He intentado todas las codificaciones que puedo encontrar pero no puedo hacer que funcione.
Si alguien tiene una idea de por qué recibo esto, hágamelo saber. Gracias de antemano!

Respuestas:
Editar: yo estaba equivocado;)
cmd.exe¿Acepta UTF-8 pero hay que estar seguro para guardarlo sin elBOMal principio del archivo.Aquí hay una segunda prueba. Puede usarlo
chcp 65001al comienzo de su archivo por lotes.Un archivo por lotes no puede ser del tipo UTF-8. Tiene que ser ASCII.
Cmd.exesimplemente no acepta otro formato. Hice una pequeña prueba y puedes usar tus personajes, pero necesita algo de trabajo.Haz un archivo
test.batconecho Å Ä Ö. Guárdelo con formatoANSI/ASCII. Abracmd.exeay asegúrese de suscmd.exeusosLucida Console(para mostrar los caracteres Unicode).Cuando escriba el archivo, mostrará los caracteres como los viejos caracteres de DOS. Puedes ver un cuadro de traducción aquí .
Cuando cambia a una página de códigos "Windows Ansi" (es decir, el latín de Europa occidental) con
chcp 1252los caracteres se muestran correctamente. Si también se transfieren a sus respectivas utilidades depende de esa utilidad.Pero, ¿por qué estás creando un archivo por lotes para esto? ¿No puedes simplemente codificarlo en VB.net?
Editar 2 #:
Así es como se establece
Lucida Consoleencmd.exe:El
BOMson 3 caracteres al comienzo de un archivo UTF-8. (\xEF\xBB\xBF)En VB.net debe crear un archivo sin una
BOMcomo esta:fuente
Lucida Consoley crear archivos sinBOM(Editar # 2, en la parte inferior). ¿Pero crear este usuario a través delnet usertrabajo en el símbolo del sistema? ¿Y qué no funciona si lo creas a través de VB.net? Para esto necesitaríamos un código de ejemplo (o una pregunta separada) porque esto debería funcionar. (Por cierto, vinculaste mi imagen, no la tuya, creo, en tu comentario)findno maneja la entrada UTF-8 no muy bien. Pero puedes usarfindstr. De esta manera:ping 127.0.0.1 -n 2 | findstr /C:" = "Lo que solucionó esto para mí fue guardar el archivo como UTF-8 sin BOM y usar este código
¡Lo que no usé antes fue @echo off para que usar chcp 65001 sea lo que lo solucionó! Gracias también Rik por toda la ayuda :)
fuente