火山软件开发平台

标题: 读写配置不能读取utF-8文本 [打印本页]

作者: 易入门    时间: 2024-4-22 18:05
标题: 读写配置不能读取utF-8文本
能解决吗

作者: Xelloss0618    时间: 2024-4-22 18:14
用第三方模块的 ini 功能可以解决,微软的API只能读写本地编码的 ini 文件。
或者你可以尝试修改控制面板-区域-非 Unicode 程序的语言,改成 Beta 版:使用 Unicode UTF-8 提供全球语言支持,或许就可以读取 UTF-8 的。
作者: 创世魂    时间: 2024-4-22 18:29
只能用第三方模块。或者自己写一套ini读取逻辑。
作者: guangye1    时间: 2024-4-22 20:30
我上回用火山读取易语言的配置文件,弄了将近一个小时后来才搞明白原来是编码问题
作者: hrq520    时间: 2024-4-22 22:59
本帖最后由 hrq520 于 2024-4-22 23:04 编辑


  +1

作者: 易入门    时间: 2024-4-23 03:10
<火山程序 类型 = "通常" 版本 = 1 />

方法 内存_读配置 <公开 静态 类型 = 文本型>
参数 配置文件 <类型 = 文本型>
参数 节名称 <类型 = 文本型>
参数 配置项名称 <类型 = 文本型>
参数 默认文本 <类型 = 文本型>
{
    变量 文本 <类型 = 文本型>
    变量 局_结果数组 <类型 = 文本数组类>
    变量 局_结果数组2 <类型 = 文本数组类>
    变量 局_节名 <类型 = 文本型>
    变量 局_长度 <类型 = 整数>
    变量 局_寻找位置 <类型 = 整数>
    变量 局_结束位置 <类型 = 整数>
    变量 局_结果文本 <类型 = 文本型>
    变量 局_结果长度 <类型 = 整数>
    变量 局_文本长度 <类型 = 整数>
    变量 索引 <类型 = 整数>
    变量 配置文件内容 <类型 = 字节集类>
    配置文件内容 = 读入文件 (配置文件, )
    文本 = UTF8到文本 (配置文件内容)
    // 调试输出 ("文本", 文本)
    局_文本长度 = 取文本长度 (文本)
    局_节名 = "[" + 节名称 + "]"
    局_长度 = 取文本长度 (局_节名)
    局_寻找位置 = 寻找文本 (文本, "[" + 节名称 + "]", , )
    局_结束位置 = 寻找文本 (文本, "[", 局_寻找位置 + 局_长度, )
    如果 (局_结束位置 == -1)
    {
        局_结果长度 = 局_文本长度 - 局_寻找位置
    }
    否则
    {
        局_结果长度 = 局_结束位置 - 局_寻找位置
    }
    局_结果文本 = 取文本中间 (文本, 局_寻找位置, 局_结果长度)
    // 调试输出 (局_长度, 局_寻找位置, 局_结束位置, 局_结果文本)
    分割子文本 (局_结果文本, "\r\n", 局_结果数组, , )
    计次循环 (局_结果数组.取成员数 ())
    {
        索引 = 取循环索引 ()
        如果真 (寻找文本 (局_结果数组.取成员 (索引), 配置项名称 + "=", , ) != -1)
        {
            如果真 (分割子文本 (局_结果数组.取成员 (索引), "=", 局_结果数组2, , ) == 2)
            {
                返回 (局_结果数组2.取成员 (1))
            }
        }
    }
    全局信息框 ("读取失败:" + 节名称 + "|" + 配置项名称, , , )

    返回 (默认文本)











    // 分割子文本 (文本, "[" + 节名称 + "]", 局_结果数组, 假, 假)

    // 分割子文本 (局_结果数组.取成员 (1), "\r\n", 局_结果数组2, , )




    // 分割文本 (文本, "[" + 节名称 + "]", 局_结果数组, 真, 真)

    // 调试输出 ("[" + 节名称 + "]", 局_结果数组2.取成员数 ())
    // 调试输出 (局_结果数组2)



}

作者: 易入门    时间: 2024-4-23 03:11
易入门 发表于 2024-4-23 03:10
方法 内存_读配置
参数 配置文件
参数 节名称

以前自己写的,读取有了,怎么实现写呢




欢迎光临 火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4