c# – 转换印度货币符号

我有一个简单的C#控制台代码,它将html名称转换为相应的符号.

示例: – & euro; – >这是欧元html名称,&#8364 – >.这是欧元的十进制代码;

My code will convert this name to euro symbol-> €

但是当我将&#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> { { "₹", "&#8377;" }, {"&euro;", "&#8364;"} };
        var output = replacements.Aggregate(input, (current, replacement) => current.Replace(replacement.Key, replacement.Value));
        Console.WriteLine(output);
        Console.ReadLine();
        }
    }
}

请帮帮我.

最佳答案 首先,我认为这里有一个更基本的问题.

您的输入字符串不包含字符串“& euro;”.

如果将Dictionary更改为:

var replacements = new Dictionary<string, string> { { "₹", "&#8377;" }, { "€", "&#8364;" } };

然后你会看到输出实际上是:

&#8377; 5000 &#8364;

所以你没有看到你认为你看到的东西,因为“₹”是字符串的一部分“& euro;”不是.

也就是说,读到这一点,似乎所有浏览器都不支持这个卢比符号的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>

HTH

点赞