Как рассчитать ширину отображения строки в консольной программе c #? - PullRequest
0 голосов
/ 12 апреля 2019

Как рассчитать ширину отображения строки в консольной программе c # (ядро .net)?

var str = "hello你好こんにちは"; 
var length = str.Length; // 12
var width = Str.Width(str); // expected width: 19
public static int Width(string str)
{
    var length = 0;
    for(var i = 0; i < str.Length; i++)
    {
        byte[] bytes = Encoding.Default.GetBytes(str.Substring(i,1));
        if(bytes.Length > 1)
        {
            length += 2;
        }
        else
        {
            length += 1;
        }
    }
    return length;
}

Я не могу гарантировать, что это даст правильные результаты на всех языках.

Итак, что я должен сделать, чтобы эта функция работала на всех языках? как функция mb_strwidth в PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...