First of all, the two characters you indicated are not from the block of Arabic presentation forms. They are \x0644 and \x0627 , which are taken from the standard Arabic block. However, to make sure I tried the \xFEFB , which is the "equivalent" character (not equivalent, but you know) for ูุง from the Presentation Forms block, and it works just fine for that too.
Secondly, I assume that you are referring to the encoding Windows-1256, which is designed for inherited 8-bit Arabic text.
So, I tried the following:
var input = "ูุง"; var encoding = Encoding.GetEncoding("windows-1256"); var result = encoding.GetBytes(input); Console.WriteLine(string.Join(", ", result));
The output that I get is 225, 199 . So let's try returning it back:
var bytes = new byte[] { 225, 199 }; var result2 = encoding.GetString(bytes); Console.WriteLine(result2);
Fairly enough, the console does not display the result correctly, but the Watch window in the debugger tells me that the answer is correct (it says "ูุง"). I can also copy the output from the Console, and this is correct on the clipboard.
Therefore, the encoding of Windows-1256 works very well, and it is not clear what the problem is.
My recommendation:
Write a short piece of code that detects the problem.
Submit a new question with this code snippet.
In this question, describe what result you get and what result you expect.
Timwi source share