问题描述

PBI连MySQL数据库,使用SQL查询语句包含中文字符,查询结果不对,SQL语句中的中文字符没有被识别到。
解决:Power BI连MySQL,SQL语句包含中文不能识别 - 图1
而在Navicat中查询结果是对的
解决:Power BI连MySQL,SQL语句包含中文不能识别 - 图2
并且从MySQL加载到PQ中的中文字符也有问题,用PQ对中文字符做筛选、替换等操作时,也是无法识别中文字符。

分析

猜测可能是字符编码问题,这里可能有两点问题:

  1. PQ代码(M语句)中的SQL语句部分是一堆字符串,可能这堆字符串需要做编码处理?
  2. MySQL本身有自己的字符编码类型,需要在连接数据库时对数据库的编码类型做定义?

    解决

    MySQL数据库时utf8字符编码
    解决:Power BI连MySQL,SQL语句包含中文不能识别 - 图3
    查询MySQL.Database这个函数的使用方法,发现定义编码的参数:Encoding
    解决:Power BI连MySQL,SQL语句包含中文不能识别 - 图4
    把Encoding = TextEncoding.Utf8参数加到MySQL.Database语句中,OK了!
    解决:Power BI连MySQL,SQL语句包含中文不能识别 - 图5
    1. , Encoding = TextEncoding.Utf8