使用coldfusion从mysql显示俄罗斯数据

时间:2018-02-20 21:44:40

标签: mysql utf-8 coldfusion

我设置了一个mysql数据库,字符集为utf8,Collection设置为utf8_general_ci。

我可以看到数据库中的俄文文本都很好。

我添加了<cfprocessingdirective pageEncoding="utf-8"> 在coldfusion页面。如果我直接在cfm页面输入俄语文本,它在浏览器中显示正常。

但是,如果我使用cfquery来拉入数据以在浏览器中显示它,则显示不正确,即ÐŽÐ'Ð。

我的cfquery非常简单......

<cfquery name="getStatic" datasource="#session.odbcname#">
SELECT  *
FROM    static_id
WHERE   static_displayname = 'home'
AND     static_status = 'online'
</cfquery>

然后使用cfoutput显示数据#getStatic.data#

有关如何正确显示数据的任何想法?

由于

2 个答案:

答案 0 :(得分:1)

将其添加到页面顶部。

<cfprocessingdirective pageencoding = "utf-8">

或者更好的是,如果您在每个页面上都需要它,请将其添加到onRequest()的{​​{1}}事件中。

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-p-q/cfprocessingdirective.html

答案 1 :(得分:1)

ЎБ是&#39; Mojibake&#39; ЎБ

在UTF-8中,十六进制为D08E D091。如果将其视为latin1,则十六进制D0 8E D0 91表示ЎБ

但是,它也可能是&#34;双重编码&#34;,表中的十六进制是C390 C5BD C390 E28098。请SELECT HEX(col) ...看看你有哪些。

双重编码是一种无声错误 - 通常一切看起来都不错,而存储的值是错误的。

寻找&#39; Mojibake&#39;在here中列出要在代码中检查的内容列表。

(对于西里尔语,CHARACTER SET utf8utf8mb4行为相同。它们主要区别于表情符号和中文。)

我对ColdFusion的吝啬说明

<cfprocessingdirective pageEncoding="utf-8">

<cffile
action="read"
file="#settings.csvfile#"
variable="autodata"
charset="utf-8">

(呃。我数了一下。我在45个第三方软件包上有笔记,比如ColdFusion。请原谅我,如果我不能在其中一个方面发表权威话。)