我在排序瑞典语字符串时遇到问题。
我遇到以下字符问题: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,å,ä,ö
是否可以选择使字符串按预期排序?
答案 0 :(得分:1)
作为一种变通办法,我切换到文化se-SE(Sami)只是为了在我等待.NET排序规则更新时正确地对字母字符串进行排序。
更新:
这是github问题: https://github.com/dotnet/corefx/issues/37753
Update2:
.NET不存在问题,它是在底层操作系统中定义的排序规则。此错误仅在Windows上出现。