js里的localeCompare对中文进行排序没有C++直接来得靠谱

今天坑人的主角是Electron(2.x),里面string.localeCompare,效果和chrome不一样

"啊".localeCompare("参"),chrome里返回值是-1,是按拼音排序的。Electron里返回1,估计是按部首排序?这里已经猜到可能和字符编码有关,如果在Electron下面 "啊".localeCompare("参", "zh-CN"),那得到的结果也是-1,即拼音排序。现在要做一个扫描文件夹下面的文件,按名字排序的东西,于是就遇到了坑

[a,b,c,啊,参],五个文件,windows下排序结果是[a,b,c,啊,参],Electron下面排序结果是[a,b,c,参,啊]。这个时候我换成localeCompare(,"zh-CN"),中文排序会正确,但是所有中文会排到英文之前,如下[啊,参,a,b,c]

C++的代码,默认的字符编码就是拼音排序的那一套,unicode,应该是GBK字符集?从来没被locale相关的问题给坑过,放弃了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值