我有一个简单的C#控制台代码,它将html名称转换为相应的符号。
Example
: - €
- >这是欧元html名称,€
- >。这是欧元的十进制代码;
我的代码会将此名称转换为欧元符号 - > €
但是当我将&#8377转换为₹时,它无效。
我的控制台应用程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace Multiple_Replace
{
class Program
{
static void Main(string[] args)
{
var input = " ₹ 5000 €";
var replacements = new Dictionary<string, string> { { "₹", "₹" }, {"€", "€"} };
var output = replacements.Aggregate(input, (current, replacement) => current.Replace(replacement.Key, replacement.Value));
Console.WriteLine(output);
Console.ReadLine();
}
}
}
请帮帮我。
答案 0 :(得分:1)
首先,我认为这里有一个更基本的问题。
您的input
字符串不包含字符串"€"
。
如果您将词典更改为:
var replacements = new Dictionary<string, string> { { "₹", "₹" }, { "€", "€" } };
然后你会看到输出实际上是:
₹ 5000 €
所以你没有看到你认为你看到的是什么,因为"₹"
是字符串的一部分而"€"
不是。
那就是说,读到这个,似乎所有浏览器都不支持这个卢比符号的html实体代码。
如果您想要完成此任务,则以下代码使用unicode代码:
using System;
using System.Collections.Generic;
using System.Linq;
namespace Multiple_Replace
{
class Program
{
static void Main(string[] args)
{
var input = " ₹ 5000 €";
var replacements = new Dictionary<string, string> { { "₹", "\u20B9" }, { "€", "\u20AC" } };
var output = replacements.Aggregate(input, (current, replacement) => current.Replace(replacement.Key, replacement.Value));
Console.WriteLine(output);
Console.ReadLine();
}
}
}
此外,请检查此问题和接受的答案,我认为这将为您提供信息:
Displaying the Indian currency symbol on a website
最后,如果你想在html中正确表示符号,你可以使用这段代码:
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<i class="fa fa-inr"></i>
&#13;
HTH
答案 1 :(得分:0)
您是否尝试过设置控制台输出编码?
e.g。
Console.OutputEncoding = System.Text.Encoding.UTF8;