C# 如何在C中将HTML转换为Javascript转义#
我已将印地语字体转换为HTML代码。现在我想把这个HTML代码转换成unicode转义码 印地语:C# 如何在C中将HTML转换为Javascript转义#,c#,html,unicode,C#,Html,Unicode,我已将印地语字体转换为HTML代码。现在我想把这个HTML代码转换成unicode转义码 印地语: श्रीगंगानगर। हनुमानगढ़ मार्ग पर लालगढ़ जाटान छावनी के नजदीक शनिवार सुबह सड़क से पन्द्रह-... 对应的HTML: 和#2358्रीगंगानगर। हन
श्रीगंगानगर। हनुमानगढ़ मार्ग पर लालगढ़ जाटान छावनी के नजदीक शनिवार सुबह सड़क से पन्द्रह-...
对应的HTML:
和#2358्रीगंगानगर। हनुमानगढ़ मार्ग पर लालगढ़ जाटान छावनी के नजदीक शनिवार सुबह सड़क से पन्द्रह-...代码>
现在我想将此HTML代码转换为unicode转义,如:
\u0936\u094D\u0930\u0940\u0917\u0902\u0917\u093E\u0928\u0917\u0930\u0964\u0939\u0928\u0941\u092E\u093E\u0928\u0917\u0922\u093C\u092E\u093E\u0930\u094D\u0917\u0917\u092A\u0930
就像在美国一样。但是我希望通过C代码,而不是Javascript进行转换…您可以
- 使用正则表达式
([0-9]+)捕获每个unicode字符代码>
- 将捕获的部分转换为整数
- 取字符串中整数的十六进制表示形式
- 在开头添加
\u
,并从左起用0
填充字符串,使其成为4个字符的字符串
你可以
- 使用正则表达式
([0-9]+)捕获每个unicode字符代码>
- 将捕获的部分转换为整数
- 取字符串中整数的十六进制表示形式
- 在开头添加
\u
,并从左起用0
填充字符串,使其成为4个字符的字符串
我假设你不需要担心BMP之外的任何事情。如果是这样,您希望首先将UTF-16高和低代理合并在一起。
编辑:划掉最后一句话,js在内部使用UTF-16,与C#相同,因此上述内容在BMP之外也可以正常工作
但是,相应的HTMLश्रीगंगानगर। हनुमानगढ़ मार्ग पर लालगढ़ जाटान छावनी के नजदीक शनिवार सुबह सड़क से पन्द्रह 是:
<p>श्रीगंगानगर। हनुमानगढ़ मार्ग पर लालगढ़ जाटान छावनी के नजदीक शनिवार सुबह सड़क से पन्द्रह</p>
或:
为什么不直接使用它们呢
StringBuilder sb = new StringBuilder();
foreach(char c in hindi)
{
sb.Append(@"\u").Append(((int)c).ToString("X4"));
}
return sb.ToString()
我假设你不需要担心BMP之外的任何事情。如果是这样,您希望首先将UTF-16高和低代理合并在一起。
编辑:划掉最后一句话,js在内部使用UTF-16,与C#相同,因此上述内容在BMP之外也可以正常工作
但是,相应的HTMLश्रीगंगानगर। हनुमानगढ़ मार्ग पर लालगढ़ जाटान छावनी के नजदीक शनिवार सुबह सड़क से पन्द्रह 是:
<p>श्रीगंगानगर। हनुमानगढ़ मार्ग पर लालगढ़ जाटान छावनी के नजदीक शनिवार सुबह सड़क से पन्द्रह</p>
或:
为什么不直接使用它们呢?我看到您直接从原始文本中获得了多个答案,下面是一种按照您的要求从HTML转义中获得答案的方法
StringBuilder sb = new StringBuilder();
foreach(char c in hindi)
{
sb.Append(@"\u").Append(((int)c).ToString("X4"));
}
return sb.ToString()
string input = "श्रीगंग..."
var output = Regex.Replace(input, @"&#([0-9]*);",
x => String.Format("\\u{0:X4}", int.Parse(x.Groups[1].Value)));
或者交替地
var output = String.Join("", WebUtility.HtmlDecode(input)
.Select(x => "\\u" + ((int)x).ToString("X4")));
我看到您直接从原始文本中获得了多个答案,下面是一种按照您的要求从HTML转义中获得答案的方法
string input = "श्रीगंग..."
var output = Regex.Replace(input, @"&#([0-9]*);",
x => String.Format("\\u{0:X4}", int.Parse(x.Groups[1].Value)));
或者交替地
var output = String.Join("", WebUtility.HtmlDecode(input)
.Select(x => "\\u" + ((int)x).ToString("X4")));
这是一个简单的十进制到十六进制转换和字符串操作。谢谢,我会搜索它我不知道如何做,让我们看看它是否帮助我…这是一个简单的十进制到十六进制转换和字符串操作。谢谢,我会搜索它,我不知道如何做,让我们看看它是否帮助我…我没有尝试,直到现在,因为我找到了答案,但我也会尝试一下,因为它看起来与这个解释很好。。。对于快速回复,我直到现在才尝试,因为我找到了答案,但我也会尝试,因为它看起来与这个解释很好。。。n thnks用于快速回复。我刚刚添加了一个优化,如果字符串很大,它将产生不同的效果,你仍然需要逃避它,而不是像我建议的那样直接使用它。哦,等等。你的出发点是Ӓ代码>格式?对不起,我看错了。首先做html代码。事实上,我测试了它,但它没有很好的工作,它给了我unicode转义,但它不是确切的可能的术语,我在我的问题中提到,我有html代码,但仍然感谢你的答复和gr8的答案。。。虽然我已经从@Joachim Isaksson的回答中得到了我想要的东西,但这就是我最后的评论所说的。我刚刚添加了一个优化,如果字符串很大,它将产生不同的效果,你仍然需要逃避它,而不是像我建议的那样直接使用它。哦,等等。你的出发点是Ӓ代码>格式?对不起,我看错了。首先做html代码。事实上,我测试了它,但它没有很好的工作,它给了我unicode转义,但它不是确切的可能的术语,我在我的问题中提到,我有html代码,但仍然感谢你的答复和gr8的答案。。。虽然我已经从@Joachim Isaksson的回答中得到了我想要的,但这就是我最后的评论。嗨,非常感谢,这个答案是最好的,也是我想要的。。。非常感谢你我非常感谢你这个答案是最好的,而且这正是我想要的。。。多谢各位