转换印度货币符号

时间:2016-06-22 07:46:39

标签: c# html html5

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

Example: - € - >这是欧元html名称,&#8364 - >。这是欧元的十进制代码;

  

我的代码会将此名称转换为欧元符号 - > €

但是当我将&#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();
        }
    }
}

请帮帮我。

2 个答案:

答案 0 :(得分:1)

首先,我认为这里有一个更基本的问题。

您的input字符串不包含字符串"&euro;"

如果您将词典更改为:

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中正确表示符号,你可以使用这段代码:

&#13;
&#13;
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">

<i class="fa fa-inr"></i>
&#13;
&#13;
&#13;

HTH

答案 1 :(得分:0)

您是否尝试过设置控制台输出编码?

e.g。

Console.OutputEncoding = System.Text.Encoding.UTF8;