Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 858 Vote(s) - 3.48 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to write Unicode characters to the console?

#1
I was wondering if it was possible, in a console application, to write characters like `℃` using .NET. When I try to write this character, the console outputs a question mark.
Reply

#2
I found some elegant solution on MSDN

System.Console.Write('\uXXXX') //XXXX is hex Unicode for character

This simple program writes ℃ right on the screen.

using System;

public class Test
{
public static void Main()
{
Console.Write('\u2103'); //℃ character code
}
}
Reply

#3
It's likely that your output encoding is set to ASCII. Try using this before sending output:

Console.OutputEncoding = System.Text.Encoding.UTF8;

(MSDN [link][1] to supporting documentation.)

And here's a little console test app you may find handy:

**C#**

using System;
using System.Text;

public static class ConsoleOutputTest {
public static void Main() {
Console.OutputEncoding = System.Text.Encoding.UTF8;
for (var i = 0; i <= 1000; i++) {
Console.Write(Strings.ChrW(i));
if (i % 50 == 0) { // break every 50 chars
Console.WriteLine();
}
}
Console.ReadKey();
}
}


**VB.NET**

imports Microsoft.VisualBasic
imports System

public module ConsoleOutputTest
Sub Main()
Console.OutputEncoding = System.Text.Encoding.UTF8
dim i as integer
for i = 0 to 1000
Console.Write(ChrW(i))
if i mod 50 = 0 'break every 50 chars
Console.WriteLine()
end if
next
Console.ReadKey()
End Sub
end module

It's also possible that your choice of Console font does not support that particular character. Click on the Windows Tool-bar Menu (icon like C:\.) and select Properties -> Font. Try some other fonts to see if they display your character properly:

![picture of console font edit][2]


[1]:

[To see links please register here]

[2]:
Reply

#4
Besides `Console.OutputEncoding = System.Text.Encoding.UTF8;`

for some characters you need to install extra fonts (ie. Chinese).

In ***Windows 10*** first go to ***Region & language settings*** and install support for required language:
[![enter image description here][1]][1]

After that you can go to ***Command Prompt Proporties (or Defaults if you like)*** and choose some font that supports your language (like ***KaiTi*** in Chinese case):
[![enter image description here][2]][2]

Now you are set to go:
[![enter image description here][3]][3]


[1]:

[2]:

[3]:
Reply

#5
This works for me:

<code>Console.OutputEncoding = System.Text.Encoding.Default;</code>

To display some of the symbols, it's required to set Command Prompt's font to Lucida Console:

1. Open Command Prompt;

2. Right click on the top bar of the Command Prompt;

3. Click Properties;

4. If the font is set to Raster Fonts, change it to Lucida Console.
Reply

#6
**Console.OutputEncoding Property**

[To see links please register here]


> Note that successfully displaying Unicode characters to the console requires the following:
>
> - The console must use a TrueType font, such as Lucida Console or Consolas, to display characters.


Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through