Я полагаю, что вы ищете HttpUtility.UrlEncode
, не можете определить кодировку, чтобы получить точно такой же вывод, который вы показываете.
var testString = "つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。";
var encodedUrl = HttpUtility.UrlEncode(testString, Encoding.UTF8);
Возможно, вы захотите изменить свой вопрос, поскольку вы неНе нужно конвертировать Unicode в ASCII, что невозможно.Вам скорее нужно Persent кодировать или URL кодировать Процент-кодирование .
[EDIT]
Я понял это:
var testString = "つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。";
var htmlEncoded = string.Concat(testString.Select(arg => string.Format("&#{0};", (int)arg)));
var result = HttpUtility.UrlEncode(htmlEncoded);
Результат будет точно соответствовать кодировке, которую вы указали.Шаг за шагом:
var inputChar = 'つ';
var charValue = (int)inputChar; // 12388
var htmlEncoded = "&#" + charValue + ";"; // つ
var ulrEncoded = HttpUtility.UrlEncode(htmlEncoded); // %26%2312388%3b