4

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

是否有一种跨平台的方法来检测 Qt 中的 CSV 分隔符是什么?

如果没有可用的跨平台方式,是否有特定于 Windows 的方式?

4

2 回答 2

2

QLocale::groupSeparator()

QChar separator = QLocale().groupSeparator();

编辑:

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

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

于 2013-05-23T15:30:04.960 回答
0

对于 Windows,您可以使用GetLocaleInfo API 来读取列表分隔符。

GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLIST, szBuf, sizeof(szBuf));
于 2021-09-17T11:01:31.853 回答