If it retrieves English, it means the
CurrectCulture
is English. I suspect you're confusing using some language with culture. You see, .NET fully supports Unicode; internally, all strings are represented in memory using Unicode encoding UTF-16, one or two 16-bit words per characters (two words are called surrogate pair and used to represent characters beyond BMP,
Basic Multilingual Plain). It allows program to work with any language (and even with several different language in one control like a Label, TextBox or TextBlock)
no matter what culture is assigned to a thread. Culture is something associated to language but independent on it. It defines what satellite assemblies will be used (if any) and also such thing as representation of numerals, date/time, etc.
I hope this is the only problem. Please check up what culture was really assigned to a thread. If you cannot see it, try to assign it explicitly and read back; I think you should get matching results.
See also:
http://unicode.org/[
^],
http://unicode.org/faq/utf_bom.html[
^].
—SA