Ваш метод принимает string
и возвращает другое string
, что не имеет смысла.System.String
- это «вектор» кодовых единиц UTF-16.
Вы должны сделать:
using System.Text;
using System.IO;
// ...
var str = File.ReadAllText(@"path\file.txt", Encoding.GetEncoding("GB18030"));
Пока str
находится в памяти, оно имеет значение "矢尺永吉"
.Это не может быть "UTF-8", когда это строка .NET в памяти.Конечно, вы можете сохранить его в другом файле:
File.WriteAllText(@"path\otherfile.txt", str, Encoding.UTF8);