Loading...
Cobalt avatar Cobalt 7 Точки

Проблем с кирилица в C#

Здравейте, търсих във форума но не намерих отговор на този въпрос.

Влизам и пиша някаква елементарна конзолна програмка, например "Hello C#".

Всичко е наред до момента в който, напиша това: Console.WriteLine("Здравейте");

След като стартирам, разбирам, че в програмата няма грешка(поне така си мисля), но вместо да пише "Здравейте" има само някакви въпросителни знаци.

Когато пишa на английски няма проблем.

Ще се радвам ако може някой да ми помогне.:)

Благодаря.

Тагове:
0
Programming Basics
hackthecode avatar hackthecode 55 Точки

Здравей,

проблема с въпросителните които ти изписва е от енкодинга. Трябва да си настроиш output-a на конзолата. Варианти много.
Ето един пример:
 

            Console.OutputEncoding = Encoding.UTF8;
            Console.WriteLine("Здравей Свят");

Освен енкодинга - шрифта който използваш за печатане в конзолата трябва да подържа кирилица, примерно "Consolas" или "Lucida Console"

И винаги можеш да гугълнеш  примерно "c# cyrillic encoding" 

Успех!

2
28/10/2015 15:16:31
Cobalt avatar Cobalt 7 Точки

Здравей,

Не разбрах точно как да реша проблема, но ще потърся в интернет.

Благодаря.

 

0
flashestswag avatar flashestswag 66 Точки

Много ми е интересно, защо при теб не излиза кирилицата, при мен с Windows 7, Visual Studio 2015 няма никакви проблеми с печатането на кирилица.

1. Може ли да споделиш с каква Операционна система си, коя версия на Visual Studio, и дали Regional Settings на Операционната система са ти Bulgarian.

Относно това, което hackthecode сподели:
2. Пробвай да смениш шрифта на конзолата, виж тук как става -> http://i.stack.imgur.com/8rG3E.png

Ако това не помогне виж направо цялата тема по този въпрос тук -> http://stackoverflow.com/questions/5750203/how-to-write-unicode-chars-to-console

Поздрави :) Ще чакам да споделиш дали си успял да го оправиш :)

1
28/10/2015 20:49:03
hackthecode avatar hackthecode 55 Точки

Извинявам се, моя е грешката за неълното обяснение...
По принцип трябва да добавиш използването на библиотеката System.Text за да използваш класа  Encoding
Като в началото на програмният код освен using System;  трябва да добавиш още един ред -  using System.Text;
Тогава просто казваш на конзолата да отпечатва с encoding UTF8 като добавиш в кода след Main метода
ред с Console.OutputEncoding = Encoding.UTF8;​ или System.Text.Console.OutputEncoding = Encoding.UTF8; (ако не си добавил използването на библиотеката в началото на кода )

Ето пример : http://pastebin.com/QrtWdXky
 

  1. using System;

  2. using System.Text;

  3.  

  4. class HelloWorld

  5. {

  6.     static void Main()

  7.     {

  8.         Console.OutputEncoding = Encoding.UTF8;

  9.         Console.WriteLine("Здравей Свят");

  10.     }

  11. }

Тествано на Windows 7 настроен на English - display language с Format & Location - Bulgaria и Language for non-Unicode Programs - English (United States)

Ако все още имаш проблем с изписването на кирилица, просто сподели повече информация за това каква операционна използваш и как е настроена имам в предвид Region and Language настройките. Успех!

6
28/10/2015 22:13:59
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.