如何获得瑞典语的字符串排序顺序

时间:2019-05-17 14:17:31

标签: c# linq sorting

我在排序瑞典语字符串时遇到问题。

我遇到以下字符问题:v,w,å,ä,ö。

    var d = new Buffer.alloc(5, [0, 0, 0, 0, 0]);
    var fd = fs.openSync(f, 'r');
    fs.readSync(fd, d, 0, 5, 0);
    fs.closeSync(fd);

    // https://en.wikipedia.org/wiki/Byte_order_mark
    var e = false;
    if ( !e && d[0] === 0xEF && d[1] === 0xBB && d[2] === 0xBF)
        e = 'utf8';
    if (!e && d[0] === 0xFE && d[1] === 0xFF)
        e = 'utf16be';
    if (!e && d[0] === 0xFF && d[1] === 0xFE)
        e = 'utf16le';
    if (!e)
        e = 'ascii';

    return e;

预期: a,va,vb,wa,wb,å,ä,ö

实际: a,va,wa,vb,wb,å,ä,ö

是否可以选择使字符串按预期排序?

1 个答案:

答案 0 :(得分:1)

作为一种变通办法,我切换到文化se-SE(Sami)只是为了在我等待.NET排序规则更新时正确地对字母字符串进行排序。

更新:

这是github问题: https://github.com/dotnet/corefx/issues/37753

Update2:

.NET不存在问题,它是在底层操作系统中定义的排序规则。此错误仅在Windows上出现。