读写配置不能读取utF-8文本
能解决吗用第三方模块的 ini 功能可以解决,微软的API只能读写本地编码的 ini 文件。
或者你可以尝试修改控制面板-区域-非 Unicode 程序的语言,改成 Beta 版:使用 Unicode UTF-8 提供全球语言支持,或许就可以读取 UTF-8 的。 只能用第三方模块。或者自己写一套ini读取逻辑。 我上回用火山读取易语言的配置文件,弄了将近一个小时后来才搞明白原来是编码问题 本帖最后由 hrq520 于 2024-4-22 23:04 编辑
+1
<火山程序 类型 = "通常" 版本 = 1 />
方法 内存_读配置 <公开 静态 类型 = 文本型>
参数 配置文件 <类型 = 文本型>
参数 节名称 <类型 = 文本型>
参数 配置项名称 <类型 = 文本型>
参数 默认文本 <类型 = 文本型>
{
变量 文本 <类型 = 文本型>
变量 局_结果数组 <类型 = 文本数组类>
变量 局_结果数组2 <类型 = 文本数组类>
变量 局_节名 <类型 = 文本型>
变量 局_长度 <类型 = 整数>
变量 局_寻找位置 <类型 = 整数>
变量 局_结束位置 <类型 = 整数>
变量 局_结果文本 <类型 = 文本型>
变量 局_结果长度 <类型 = 整数>
变量 局_文本长度 <类型 = 整数>
变量 索引 <类型 = 整数>
变量 配置文件内容 <类型 = 字节集类>
配置文件内容 = 读入文件 (配置文件, )
文本 = UTF8到文本 (配置文件内容)
// 调试输出 ("文本", 文本)
局_文本长度 = 取文本长度 (文本)
局_节名 = "[" + 节名称 + "]"
局_长度 = 取文本长度 (局_节名)
局_寻找位置 = 寻找文本 (文本, "[" + 节名称 + "]", , )
局_结束位置 = 寻找文本 (文本, "[", 局_寻找位置 + 局_长度, )
如果 (局_结束位置 == -1)
{
局_结果长度 = 局_文本长度 - 局_寻找位置
}
否则
{
局_结果长度 = 局_结束位置 - 局_寻找位置
}
局_结果文本 = 取文本中间 (文本, 局_寻找位置, 局_结果长度)
// 调试输出 (局_长度, 局_寻找位置, 局_结束位置, 局_结果文本)
分割子文本 (局_结果文本, "\r\n", 局_结果数组, , )
计次循环 (局_结果数组.取成员数 ())
{
索引 = 取循环索引 ()
如果真 (寻找文本 (局_结果数组.取成员 (索引), 配置项名称 + "=", , ) != -1)
{
如果真 (分割子文本 (局_结果数组.取成员 (索引), "=", 局_结果数组2, , ) == 2)
{
返回 (局_结果数组2.取成员 (1))
}
}
}
全局信息框 ("读取失败:" + 节名称 + "|" + 配置项名称, , , )
返回 (默认文本)
// 分割子文本 (文本, "[" + 节名称 + "]", 局_结果数组, 假, 假)
// 分割子文本 (局_结果数组.取成员 (1), "\r\n", 局_结果数组2, , )
// 分割文本 (文本, "[" + 节名称 + "]", 局_结果数组, 真, 真)
// 调试输出 ("[" + 节名称 + "]", 局_结果数组2.取成员数 ())
// 调试输出 (局_结果数组2)
}
易入门 发表于 2024-4-23 03:10
方法 内存_读配置
参数 配置文件
参数 节名称
以前自己写的,读取有了,怎么实现写呢
页:
[1]