Как преобразовать (транслитерируют) строку от utf8 до ASCII (единственный байт) в c#?

Удалить / в корне:

private static final String root = "http://localhost:8080/test/api";

RestTemplate принимает uriTemplate, если они начинаются с /, поэтому ваш корень должен быть без него. если он не начинается с /, он будет считаться полным URL

11
задан Tom Blodget 17 July 2016 в 19:41
поделиться

2 ответа

Это было в ответ на Ваш другой вопрос, который похож, он был удален...., точка все еще стоит.

Похож на классический Unicode к проблеме ASCII. Прием должен был бы найти, где это происходит.

.NET хорошо работает с Unicode, предполагая, что это сказало, что это - Unicode для начала (или оставленный в значении по умолчанию).

Мое предположение - то, что Ваше приложение получения не может обработать его. Так, я, вероятно, использовал бы ASCIIEncoder с EncoderReplacementFallback со Строкой. Пустой:

using System.Text;

string inputString = GetInput();
var encoder = ASCIIEncoding.GetEncoder();
encoder.Fallback = new EncoderReplacementFallback(string.Empty);

byte[] bAsciiString = encoder.GetBytes(inputString);

// Do something with bytes...
// can write to a file as is
File.WriteAllBytes(FILE_NAME, bAsciiString);
// or turn back into a "clean" string
string cleanString = ASCIIEncoding.GetString(bAsciiString); 
// since the offending bytes have been removed, can use default encoding as well
Assert.AreEqual(cleanString, Default.GetString(bAsciiString));

Конечно, в былые времена, мы просто циклично выполнились бы, хотя и удаляют любые символы, больше, чем 127... хорошо, те из нас в США, по крайней мере.;)

20
ответ дан 3 December 2019 в 01:09
поделиться

Я смог понять это. В случае, если кто-то хочет знать ниже кода, который работал на меня:

ASCIIEncoding ascii = new ASCIIEncoding();
byte[] byteArray = Encoding.UTF8.GetBytes(sOriginal);
byte[] asciiArray = Encoding.Convert(Encoding.UTF8, Encoding.ASCII, byteArray);
string finalString = ascii.GetString(asciiArray);

Сообщите мне, существует ли более простой путь o выполнение его.

12
ответ дан 3 December 2019 в 01:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: