普通用户
SQlite表到CSV导出乱码 [复制链接]
小龙APP 发表于 2026-02-24 90 2

函数 SQlite表到CSV(数据集合  集合,写出CSV文件地址  文本型)
    ' 每个集合中为一个文本数组
    变量 CSV数据 = ""
    变量循环(i = 0,数据集合.取项目数(),1)
        变量 行数据 = (文本型[])数据集合.取项目(i)
        ' 使用逗号连接行数据,注意每个数组成员中的引号和逗号
        变量 行文本 = ""
        变量循环(j = 0,取数组成员数(行数据),1)
            行文本 = 行文本 + 行数据[j] + ","
        结束循环
        CSV数据 = CSV数据 + 换行符 + 行文本
    结束循环
    写出文本文件(写出CSV文件地址,CSV数据,"UTF-8")
结束 函数

请问这个导出 如果导出的是带emoji的 会是乱码

小龙APP 2026-02-26
引用 @Course 的回复:

您好,这是一个在安卓开发中处理文件编码和Emoji(表情符号)时非常经典的问题。问题根源:Emoji 字符需要 4 个字节存储,而部分环境或旧版逻辑可能将其截断或错误解码。

解决方式:

为写出的文件内容添加BOM,BOM 是一个特殊的字节序列 (0xEF, 0xBB, 0xBF),放在文件最前面。当 Excel 或其他编辑器看到这三个字节时,就会强制使用 UTF-8 编码打开文件,从而正确显示 Emoji。

' UTF-8 BOM 的 Unicode 字符是 \uFEFF
写出文本文件(写出CSV文件地址,"\uFEFF" + CSV数据,"UTF-8")

感谢 解决了

回复
官方技术组 2026-02-25

您好,这是一个在安卓开发中处理文件编码和Emoji(表情符号)时非常经典的问题。问题根源:Emoji 字符需要 4 个字节存储,而部分环境或旧版逻辑可能将其截断或错误解码。

解决方式:

为写出的文件内容添加BOM,BOM 是一个特殊的字节序列 (0xEF, 0xBB, 0xBF),放在文件最前面。当 Excel 或其他编辑器看到这三个字节时,就会强制使用 UTF-8 编码打开文件,从而正确显示 Emoji。

' UTF-8 BOM 的 Unicode 字符是 \uFEFF
写出文本文件(写出CSV文件地址,"\uFEFF" + CSV数据,"UTF-8")
回复
 作者信息
小龙APP
USBV4独立版
专业开发指导服务

响应时间:5分钟

服务方式:官方1对1服务

工作时间:工作日 9:00 - 18:30

专业团队 · 开发指导 · 极速响应


官网 | 基础视频教程 | 在线文档 下载 VcnStudio IDE

© VcnStudio Inc All Rights Reserved

蜀ICP备17024229号