Что ж, извините за запутанный заголовок, но у меня немного раздражающая проблема с кодировкой символов в C # .NET
У меня есть несколько классов, сгенерированных из файлов WSDL, у этих классов есть методы, которые принимают строковые параметры, которые затем передаются в удаленный веб-сервис. Этот удаленный веб-сервис ожидает, что весь ввод текста будет в кодировке UTF-8. Теперь, насколько я могу судить, на самом деле нет способа сделать строку в C # .NET в кодировке UTF-8, это UTF-16 или ничего, если я хочу UTF-8, я должен сделать это byte[]
, верно?
Итак, мой главный вопрос: как я могу поместить свои необработанные данные UTF-8 byte[]
в строку, чтобы я мог на самом деле отправить их в веб-сервис? Я имею в виду, конечно, я мог бы, вероятно, прибегнуть к коду в стиле C, перебирая все байты, но наверняка Microsoft должна была подумать об этом при разработке языка и API? (хотя, так как мой ноутбук Vista думает, что вполне нормально использовать UTF-16 внутри, cp1252 для некоторых вещей, UTF-8 для некоторых других и cp850 (!) для некоторых других вещей, я не был бы слишком удивлен, если бы они этого не сделали) .
Итак, я застрял, делая ужасные вещи, или есть какой-то скрытый System.Text.EncodeStuffTherightWay.EncodeStringAsUTF8(string)
метод глубоко в недрах .NET?