ICU:如何过滤可用转换器的字符集检测?
ICU: How to filter the charset detection to the available converters?
我正在使用 ICU 进行字符集检测,通过另一个包含它的库,但它没有适用于它可以检测到的所有字符集的转换器。例如,ISO-8859-1
有一个转换器,但 ISO-8859-2
.
没有
我已经尝试了一些方法,例如使用 ucnv_getAvailableName
,但它 returns 转换器的名称似乎不适用于 uscdet_setDetectableCharset
(除非我弄错了)。
因此,我的问题是:如何将字符集检测过滤到可用的转换器?
我也想知道是否有办法使检测偏向 UTF-8
(除了查看所有字符集检测结果),例如对于检测为 ISO-8859-1
的文件,即使文件中的所有字符都可以编码为 UTF-8
.
(unless I made a mistake)
我错了
ucsdet_setDetectableCharset
将无法检测到的字符集的状态设置为失败(逻辑)。我没有重置失败状态,期望函数设置正确的状态(即成功时成功);然而,这不是 ICU 的工作方式,我忘记了。
重置状态让我在可检测和可转换之间有一些重叠。
我正在使用 ICU 进行字符集检测,通过另一个包含它的库,但它没有适用于它可以检测到的所有字符集的转换器。例如,ISO-8859-1
有一个转换器,但 ISO-8859-2
.
我已经尝试了一些方法,例如使用 ucnv_getAvailableName
,但它 returns 转换器的名称似乎不适用于 uscdet_setDetectableCharset
(除非我弄错了)。
因此,我的问题是:如何将字符集检测过滤到可用的转换器?
我也想知道是否有办法使检测偏向 UTF-8
(除了查看所有字符集检测结果),例如对于检测为 ISO-8859-1
的文件,即使文件中的所有字符都可以编码为 UTF-8
.
(unless I made a mistake)
我错了
ucsdet_setDetectableCharset
将无法检测到的字符集的状态设置为失败(逻辑)。我没有重置失败状态,期望函数设置正确的状态(即成功时成功);然而,这不是 ICU 的工作方式,我忘记了。
重置状态让我在可检测和可转换之间有一些重叠。