检测 CSV 分隔符是否为“;” (分号)或“,”(逗号)

sas*_*alm 6 c++ csv qt separator regional-settings

根据区域设置,CSV 分隔符(或列表分隔符)可能会;代替,,这至少在 Windows 上取决于区域设置。

有没有跨平台的方法来检测 Qt 的 CSV 分隔符是什么?

如果没有跨平台的方法,是否有Windows特定的方法?

小智 2

QLocale::groupSeparator()

QChar separator = QLocale().groupSeparator();
Run Code Online (Sandbox Code Playgroud)

编辑:

但这不是正确的答案。组分隔符是在数字组之间的长数字中使用的字符,例如:“1,234.56”。在该示例中,组分隔符是逗号,小数点分隔符是句点。

看来 QLocale 根本不包含列表分隔符。您可以尝试根据使用的小数点分隔符进行猜测。如果小数分隔符则.用作,CSV 分隔符,如果小数分隔符,则用作;CSV 分隔符。但我不知道这是否涵盖所有语言。