5

example

mode con: cp>%tmp%\output.tmp
notepad %tmp%\output.tmp

show:

Statut du p‚riph‚rique CON:
---------------------------
    Page de codesÿ:   850

instead of:

Statut du périphérique CON:
---------------------------
    Page de codes :   850

I also tried with chcp 65001 and 1252

Do you know a fix?

Edit:

I use the truetype Lucida fonts, and even if I do type %tmp%\output.tmp it shows the right characters in console, but not in any text editor.

I also tried:

cmd /U /C "chcp 65001>nul &mode con: cp>%tmp%\output.tmp"

and

cmd /A /C "chcp 65001>nul &mode con: cp>%tmp%\output.tmp"

without success

Paul
  • 2,620
  • 2
  • 17
  • 27

2 Answers2

5

You may use the /U switch of cmd.exe in order to output Unicode characters. For example:

cmd /U /C dir > dirInUnicode.txt

However, this switch works on internal commands only, so you must use an auxiliary file in order to convert the output of mode command:

mode con: cp>%tmp%\output1.tmp
cmd /U /C type %tmp%\output1.tmp > %tmp%\output2.tmp
Aacini
  • 65,180
  • 12
  • 72
  • 108
  • 1
    Example in non english console with: `netsh advfirewall show current state>%tmp%\tmp.tmp &cmd /U /C "type %tmp%\tmp.tmp>%tmp%\tmp2.tmp" &notepad %tmp%\tmp2.tmp` – Paul Oct 07 '15 at 19:51
1

Use PowerShell instead of DOS as a command line prompt. Its works flawlessly with special characters.

C:> powershell
PS C:> mode con: cp > temp.txt
PS C:> notepad temp.txt
Frederic
  • 1,580
  • 15
  • 15