火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 292|回复: 6
打印 上一主题 下一主题

[视窗] 读写配置不能读取utF-8文本

[复制链接]

22

主题

139

帖子

1569

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1569
跳转到指定楼层
楼主
发表于 2024-4-22 18:05:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
能解决吗
回复

使用道具 举报

26

主题

1483

帖子

5573

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5573
沙发
发表于 2024-4-22 18:14:47 | 只看该作者
用第三方模块的 ini 功能可以解决,微软的API只能读写本地编码的 ini 文件。
或者你可以尝试修改控制面板-区域-非 Unicode 程序的语言,改成 Beta 版:使用 Unicode UTF-8 提供全球语言支持,或许就可以读取 UTF-8 的。
回复

使用道具 举报

439

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36412
板凳
发表于 2024-4-22 18:29:26 | 只看该作者
只能用第三方模块。或者自己写一套ini读取逻辑。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

2

主题

178

帖子

897

积分

高级会员

Rank: 4

积分
897
地板
发表于 2024-4-22 20:30:16 来自手机 | 只看该作者
我上回用火山读取易语言的配置文件,弄了将近一个小时后来才搞明白原来是编码问题
回复

使用道具 举报

3

主题

156

帖子

516

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
516
5#
发表于 2024-4-22 22:59:19 | 只看该作者
本帖最后由 hrq520 于 2024-4-22 23:04 编辑


  +1
回复

使用道具 举报

22

主题

139

帖子

1569

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1569
6#
 楼主| 发表于 2024-4-23 03:10:39 | 只看该作者
<火山程序 类型 = "通常" 版本 = 1 />

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

    返回 (默认文本)











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

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




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

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



}
回复

使用道具 举报

22

主题

139

帖子

1569

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1569
7#
 楼主| 发表于 2024-4-23 03:11:01 | 只看该作者
易入门 发表于 2024-4-23 03:10
方法 内存_读配置
参数 配置文件
参数 节名称

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-5-4 20:51 , Processed in 0.088206 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表