I had this problem and I don't think any of the above answers worked well
So I went for the answer myself and this code helped me
//In this section we enter the data
message="سلام دو.ستان من یک فارسی زبان هستم";
byte[] unicodeBytes = Encoding.UTF8.GetBytes(message);
Encoding ascii = Encoding.ASCII;
Encoding unicode = Encoding.Unicode;
//convert normall bytes to ascci
byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes );
//create new ascii chareacters
char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
//convert accii char to string
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
string asciiString = Encoding.UTF8.GetString(plainText);
This code helped me, I hope it will be useful for you as well
A complete project has been created at the bottom
In this example, we first convert a string to binary
And then we reconstruct the same string from the binary state
using System;
using System.Net;
using System.Security.Cryptography;
using System.Text;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string unicodeString = "سلام این یک تست می باشد ";
Encoding ascii = Encoding.ASCII;
Encoding unicode = Encoding.Unicode;
byte[] unicodeBytes =
Encoding.UTF8.GetBytes(unicodeString);
byte[] asciiBytes = Encoding.Convert(unicode, ascii,
unicodeBytes);
char[] asciiChars = new
char[ascii.GetCharCount(asciiBytes, 0,
asciiBytes.Length)];
ascii.GetChars(asciiBytes, 0, asciiBytes.Length,
asciiChars, 0);
string asciiString =
Encoding.UTF8.GetString(unicodeBytes);
}
}
}
Displaying Arabic characters in C# console application
This link also explains how to write in a Persian console. If you have not made these settings, you must first make these settings.