2016-06-22 5 views
4

У меня есть простой код консоли C#, который преобразует имя html в соответствующие символы.Преобразование индийского символа валюты

Example: - € -> это евро html имя, &#8364 ->. это десятичный код для евро;

Мой код преобразует это имя в евро символизации> €

Но когда я преобразование & # 8377 до ₹, он не работает.

код консольного приложения My:

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(); 
     } 
    } 
} 

Пожалуйста, помогите мне.

+1

Не могли бы вы определить 'не working.' и ваш' input' уже содержит наш символ валюты, то, что вы пытаетесь заменить? –

+0

В перечислении словаря есть синтаксическая ошибка: '{{" ₹ "," ₹ "}, {" € "}," & # 8364 "};' – ib11

+0

@ un-lucky: - Я пытаюсь показать ₹ символ в моем проекте. Я объяснил этот код в «примере» выше. если вы запустите этот код, он преобразует имя html в свой символ (например: €). Для этого он работает отлично, но для него не работает. – Sanjiv

ответ

1

Во-первых, я думаю, что здесь есть более общая проблема.

Строка input не содержит строку "&euro;".

Если изменить словарь к этому:

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

Тогда вы увидите, что выход на самом деле:

&#8377; 5000 &#8364;

Так вы не видите то, что вы думаю, вы видите, потому что, хотя "₹" является частью строки, "&euro;" нет.


Тем не менее, читая на это, кажется, что этот HTML код объекта для символа рупии не поддерживается всеми браузерами.

Следующий код работает, используя код Юникода, если это то, что вы хотите достичь:

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>

НТН

0

Вы пытались установить кодировку вывода консоли?

например.

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

: - На самом деле, я уже реализовал свой код для других символов (!, @, #, $,%, ^, &, * И т. Д.), Его работа для всех из них, Только проблема с символом.. Если возможно, скажите некоторое решение по вышеуказанному коду. – Sanjiv

+0

Можете ли вы скопировать вывод, который вы получаете из своего кода? – H77

+0

Мой вывод: -> & # 8377 5000. Вместо символа, его печать его html-кода (например, - & # 8377) – Sanjiv

Смежные вопросы