File: dtextencoding.zh_CN.dox

package info (click to toggle)
dtkcore 5.7.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,728 kB
  • sloc: cpp: 22,021; ansic: 183; python: 68; xml: 58; makefile: 27; sh: 15
file content (72 lines) | stat: -rw-r--r-- 5,115 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*!
@~chinese
@ingroup dutil
@file include/util/dtextencoding.h
@details 本文件包含文本编码识别和文本编码转换的公共接口。

@class Dtk::Core::DTextEncoding
@brief 文本编码信息类,提供文本编码识别和文本编码转换的公共接口。
@details 提供文本编码识别和文本编码转换的公共接口,默认使用 QTextCodec 进行检测,
    若系统环境中存在 libuchardet.so 及 libicuuc.so 库,可拓展支持的编码格式。

@fn QByteArray Dtk::Core::DTextEncoding::detectTextEncoding(const QByteArray &content)
@brief 检测给定文本的编码格式。
@details 默认使用 QTextCodec 检测,若系统环境中存在 libuchardet.so 及 libicuuc.so 库,可拓展支持的编码格式。
    检测会判断最接近的编码格式,未成功识别或为 ASCII 编码格式,将返回 UTF-8 编码格式。
@param[in] content 待检测的文本内容
@return 文本编码格式

@fn QByteArray Dtk::Core::DTextEncoding::detectFileEncoding(const QString &fileName, bool *isOk)
@brief 检测给定文件的文本编码格式,将读取文件头部最多 64KB 的文本用于检测。若文件访问失败,返回空编码格式。
@param[in] fileName 文件路径
@param[out] isOk 检测是否成功,主要判断文件内容能否正确读取
@return 文本编码格式
@sa DTextEncoding::detectTextEncoding

@fn bool Dtk::Core::DTextEncoding::convertTextEncoding(QByteArray &content, QByteArray &outContent, const QByteArray &toEncoding, const QByteArray &fromEncoding, QString *errString)
@brief 将输入的文本 `content` 从 `fromEncoding` 编码格式转换到 `toEncoding` 编码格式,转换后的文本保存到 `outContent` 。
    若转换过程中出现错误,将返回 false , 并设置 `errString` 错误信息,已转换的文本仍会写入 `outContent` 。
@note 当处理大量文本数据时,需考虑并行处理,防止阻塞线程。
@param[in] content 传入的文本
@param[out] outContent 编码转换后的文本 
@param[in] toEncoding 转换的编码格式
@param[in] fromEncoding 原始的编码格式,默认为空,会通过 `DTextEncoding::detectTextEncoding` 检测编码格式
@param[out] errString 错误信息
@return 是否转换成功
@sa DTextEncoding::convertTextEncodingEx

@fn bool Dtk::Core::DTextEncoding::convertTextEncodingEx(QByteArray &content, QByteArray &outContent, const QByteArray &toEncoding, const QByteArray &fromEncoding, QString *errString, int *convertedBytes)
@brief 将输入的文本 `content` 从 `fromEncoding` 编码格式转换到 `toEncoding` 编码格式,转换后的文本保存到 `outContent` 。
    若转换过程中出现错误,将返回 false , 并设置 `errString` 错误信息,已转换的文本仍会写入 `outContent` 。
@note 当处理大量文本数据时,需考虑并行处理,防止阻塞线程。
@note 返回 false 时,已转换的文本仍会写入 `outContent` ,同时 `convertedBytes` 会记录已转换数据长度,你可以决定保留或移除转换文本。
@param[in] content 传入的文本
@param[out] outContent 编码转换后的文本 
@param[in] toEncoding 转换的编码格式
@param[in] fromEncoding 原始的编码格式,默认为空,会通过 `DTextEncoding::detectTextEncoding` 检测编码格式
@param[out] errString 错误信息
@param[out] convertedBytes 已转换的 `content` 数据长度,若转换过程出现错误,这个值会指向异常字符出现的位置
@return 是否转换成功

@fn bool DTextEncoding::convertFileEncoding(const QString &fileName, const QByteArray &toEncoding, const QByteArray &fromEncoding, QString *errString)
@brief 读取输入的 `fileName` 文件内容,将文件内容从 `fromEncoding` 编码格式转换到 `toEncoding` 编码格式,转换后的文本保存到 `fileName` 。
    若转换过程中出现错误,将返回 false , 并设置 `errString` 错误信息,已转换的文本会被抛弃。
@param[in] fileName 传入及保存的文件路径
@param[in] toEncoding 转换的编码格式
@param[in] fromEncoding 原始的编码格式,为空时会通过 `DTextEncoding::detectTextEncoding` 检测编码格式
@param[out] errString 错误信息
@return 是否转换成功
@sa DTextEncoding::convertTextEncoding

@fn bool DTextEncoding::convertFileEncodingTo(const QString &fromFile, const QString &toFile, const QByteArray &toEncoding, const QByteArray &fromEncoding, QString *errString)
@brief 读取输入的 `fromFile` 文件内容,将文件内容从 `fromEncoding` 编码格式转换到 `toEncoding` 编码格式,转换后的文本保存到 `toFile` 。
    若转换过程中出现错误,将返回 false , 并设置 `errString` 错误信息,已转换的文本会被抛弃。
@param[in] fromFile 传入的文件路径
@param[in] toFile 保存的文件路径
@param[in] toEncoding 转换的编码格式
@param[in] fromEncoding 原始的编码格式,为空时会通过 `DTextEncoding::detectTextEncoding` 检测编码格式
@param[out] errString 错误信息
@return 是否转换成功
@sa DTextEncoding::convertTextEncoding

 */