2013-02-11 85 views
1

我們將在我們的網站上舉辦一場對國際社會開放的比賽。我們的一小部分用戶是日語,並要求能夠使用平假名在我們的網站上發表評論。我們如何在我們的網站上顯示日語(平假名)?

目前,他們的評論顯示爲??????問號。

我們使用的是2008年贏得服務器運行IIS 7和ColdFusion 10分貝,其中註釋存儲(也顯示爲??????問號)是SQL Server 2012的

網站目前正在使用UTF-8字符集:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

不確定在哪裏需要進行更改。 D B? CF?視窗? IIS?網站代碼?有任何想法嗎?

我發現了其他類似的問題,但他們通常必須專門與WordPress,Joomla或網站的完全日語。

謝謝!

+0

您需要確保您的數據庫也使用UTF-8編碼。在這裏查看排序規則和字符編碼方面的文檔:http://msdn.microsoft.com/en-us/library/ms143726%28v=sql.110%29.aspx – 2013-02-11 16:39:06

回答

1

你可能聲稱你正在使用UTF-8,但你真的嗎?如果你的數據庫,字符串(編程語言可能需要被告知以UTF-8處理字符串),並且實際的輸出編碼不是UTF-8,那麼你將得不到正確的結果。

然後這裏是字體問題;許多字符都不包含在每個字體中,因此不能在很多計算機上工作。

也嘗試像這樣設置標題作爲實際標題。

+0

對於愚蠢的問題抱歉,但是什麼意思是「嘗試像這樣設置標題爲實際標題?「 – 2013-02-11 18:55:24

+0

尼克,他的意思是使用[cfheader](http://cfdocs.org/cfheader)設置實際的HTTP標頭。 – 2013-02-11 18:55:59

+0

明白了!謝謝! – 2013-02-11 19:22:58

0

排序與此無關既不做字體(你的unicode數據越來越垃圾進入數據庫)。所以...

你應該通過一個JDBC驅動程序而不是ODBC與你的數據庫通信。你必須使用支持Unicode的數據類型來存放數據(例如,對於SQL Server使用像Nvarchar這樣的「N」數據類型等)。

我假設你使用的是cfqueryparam(它是一個面向用戶的表單),所以你需要在cfadmin(在高級菜單下)爲該數據源啓用「Enable High ASCII characters ...」選項。

+0

啓用高位ASCII字符有什麼缺點嗎?例如,如果有人嘗試將日文字符輸入到varchar字段中,還是會將其棄用爲問號,我們會得到錯誤嗎?我可以更改我的數據庫表和查詢​​以使用nvarchar而不是varchar來表示此表單,但是我不想因爲在CF管理員中進行更改而導致其他問題被破壞。 – 2013-02-11 19:33:38

+0

另外,我們的SQL Server實例正在使用SQL_Latin1_General_CP1_CI_AS排序規則。我讀到SQL Server中沒有UTF-8排序規則,但是如果我們使用「n」數據類型(例如nchar,nvarchar等),聽起來這不是問題。那是對的嗎? – 2013-02-11 19:35:47

+0

不,它隻影響cfqueryparam的使用,然後只允許unicode。你也可以在你的cfquery改變'文本'中使用SQL暗示來** N **'文本,但我不會推薦這麼做,因爲cfqueryparam是面向用戶的表單數據的最佳實踐。 排序對數據輸入沒有影響,只對排序有效。它已經有一段時間了,因爲我混合了代碼點,但我認爲那些日語條目會排序到最後。 – coldfusionPaul 2013-02-12 04:12:07

相關問題