Power BI添加零宽字符实现大小写区分后导出CSV乱码如何解决
乱码成因
- 本质为编码解码规则不匹配:你使用
Character.FromNumber(8023)生成的是Unicode零宽空格字符(U+200B),该字符的UTF-8编码为0xE2 0x80 0x8B三个字节。 - DAX Studio默认导出CSV时采用无BOM的UTF-8格式存储,Excel等工具打开CSV时默认使用系统本地编码(如简体中文系统的GBK、西欧系统的Windows-1252)解码,三个UTF-8字节被按单字节编码拆分解析,就显示为你看到的
​乱码。 - 你此前使用的转码逻辑存在错误:Power BI底层存储的文本本身是正确的Unicode格式,
Text.ToBinary(_,1251)会强行将正确的Unicode文本按1251编码转换为二进制,再用UTF-8解码反而破坏了原始字符结构,因此转码后出现问号。
解决方案
无需修改原有添加零宽字符的大小写敏感实现逻辑,按场景选择对应处理方式即可:
场景1:仅需导出CSV无乱码
在DAX Studio导出CSV时,手动选择导出编码为UTF-8带BOM,所有文本工具打开文件时会自动识别为UTF-8编码,零宽空格为不可见字符,既不会显示乱码,也不会影响字段内容,大小写敏感效果完全保留。
场景2:需要在Power Query中做文本输出/转换
所有涉及文本导出、二进制转换的步骤,统一明确指定编码为TextEncoding.Utf8即可,不要使用此前的错误转码逻辑。
内容的提问来源于stack exchange,提问作者James Khan
相关产品推荐
相关产品推荐

