MySQL - 将 Latin1 数据转换为 UTF8MB4 正在更改和/或添加“?”

问题描述 投票:0回答:1

因此,我们将 Latin1 列中的数据转换为 UTF8MB4。事情似乎很好,直到我们运行数据奇偶校验,然后我们意识到,我们的转换要么用“?”替换特殊字符。或者随意添加“?”有斑点。

这是我们的转换SQL:

    SELECT (SELECT CONVERT(CONVERT(d.actualresults USING latin1) USING utf8mb4)  FROM document d  
    WHERE d.origindocumentid = 2711460)
    FROM documentfield df
    WHERE LOWER(df.name) = 'actualresults'; 

这是原文(HTML 片段)

<li><span style="background-color:rgb(255, 255, 0)">​<a href="https://www.land.com/perspective.req?projectId=24113&amp;docId=2711870" target="_blank">convert/import preview needs some minor ui changes</a></span></li>

这是转换后的:

<li><span style="background-color:rgb(255, 255, 0)">​?<a href="https://www.land.com/perspective.req?projectId=24113&amp;docId=2711870" target="_blank">convert/import preview needs some minor ui changes</a></span></li>

注意“?”在第一行?为什么转换者要添加这个“?”

另一个例子是:

这是原文(HTML 片段)

<li><span style="background-color:rgb(255, 255, 0)">​✓<a href="https://www.land.com/perspective.req?projectId=24113&amp;docId=2711870" target="_blank">convert/import preview needs some minor ui changes</a></span></li>

这是转换后的:

<li><span style="background-color:rgb(255, 255, 0)">​?<a href="https://www.land.com/perspective.req?projectId=24113&amp;docId=2711870" target="_blank">convert/import preview needs some minor ui changes</a></span></li>

如何避免这种情况?

    SELECT (SELECT CONVERT(CONVERT(d.actualresults USING latin1) USING utf8mb4)  FROM document d  
    WHERE d.origindocumentid = 2711460)
    FROM documentfield df
    WHERE LOWER(df.name) = 'actualresults'; 
mysql data-conversion
1个回答
0
投票

如果有人想知道或者有人遇到这个问题,这里就是答案。

    SELECT (SELECT CONVERT(d.actualresults USING utf8mb4)  FROM document d  
WHERE d.origindocumentid = 2711460)
FROM documentfield df
WHERE LOWER(df.name) = 'actualresults'; 
© www.soinside.com 2019 - 2024. All rights reserved.