C# 如何对日语字符进行编码

C# 如何对日语字符进行编码,c#,.net,asp.net,vb.net,encoding,C#,.net,Asp.net,Vb.net,Encoding,我必须制定一个计划。这是编码系统 我有以下日语字符: つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ 我想将此字符串转换为如下编码: %30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30

我必须制定一个计划。这是编码系统

我有以下日语字符:

つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ

我想将此字符串转换为如下编码:

%30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30%3B%26%23123530 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 2312400%3B%26%2312289%3B%26%2312354%3B%26%2312420%3B%26%2312375%3B%26%2312358%3B%26%2312381%3B%26%2312418%3B%26%2312398%3B%26%2312368%3B%26%2312411%3B%26%2312375%3B%26%2312369%3B%26%2312428%3B%26%2312290%3B%


我该怎么做呢?

这是不可能的。Unicode比ASCII大得多,您无法在ASCII中查找Unicode中的每个字符。虽然ASCII仅为256个字符(带有控制字符),但Unicode是上万个字符(我猜)。

我相信您正在寻找
HttpUtility.UrlEncode
,但无法计算出编码以获得与您显示的完全相同的输出

var testString = "つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。";
var encodedUrl = HttpUtility.UrlEncode(testString, Encoding.UTF8);
您可能想更改您的问题,因为您实际上不需要将Unicode转换为ASCII,这是不可能的。您更需要进行Persent编码或URL编码

[编辑]

我想出来了:

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

下面是一个似乎有效的函数:

public static string UrlDoubleEncode(string text)
{
    if (text == null)
        return null;

    StringBuilder sb = new StringBuilder();
    foreach (int i in text)
    {
        sb.Append('&');
        sb.Append('#');
        sb.Append(i);
        sb.Append(';');
    }
    return HttpUtility.UrlEncode(sb.ToString());
}

那么,我怎样才能改变这个词呢?它是经典asp中的编码字符串。请更详细地解释该输出是什么。它应该是日语字符的URL编码吗(不是)?如果你解释一下你想用“ascii键”做什么,也许会有帮助。是的,亚历克斯,他问的方式让人困惑。谢谢你。我还有一个问题。我已经测试了你的答案。这是一个完美的答案。对我来说没关系。但我还有下一个问题。我得到了这个十六进制值。如何将其检索到本机unicode。@Zanhet-对不起,我不理解这个问题。