2012-04-05 56 views
0

我在德國網站上編碼時遇到了問題。 我有一個文本:帶引號(「」)和其他特殊字符的PHP編碼問題

「EröffnungsfeierFIS高山滑雪WM 2011」

當這段文字保存到數據庫中,我得到什麼?而不是那些引號。

我試過把

header("Content-Type: text/html; charset=utf-8"); 
mb_internal_encoding("UTF-8"); 
setlocale(LC_ALL, 'de_DE.utf-8'); 

在沒有成功的文件的頂部。

當我用

mysql_set_charset('utf8', $connect); 

但隨後,將上述達到像ö文本的其餘部分被剝離的第一個字符後的文本時。

表格字符集和整理是UTF-8。 腳本文件保存爲不含BOM的UTF-8。

我缺乏想法在哪裏看。

+0

似乎你做得很好。你能提供一個鏈接到頁面嗎?你是否設置了除utf-8之外的http-equiv meta標籤?我會檢查插入文本到數據庫中的頁面。 – martinstoeckli 2012-04-05 19:05:29

+1

您是否在自行管理的Web服務器上發佈?也許你忘了產生的原因在這裏(編輯'/等/任何你想要的locales.gen',取消,然後'語言環境的gen'根)的區域,它發生在我很多次:-) – 2012-04-06 00:50:35

回答

0

我做的事情有所幫助。特別是mysql_set_charset('utf8', $connect);。 問題是另一個程序員留下了一些不需要的代碼(utf8_decode)。 看起來他無法用其他方式處理utf-8編碼。

我還發現,mysql_set_charset('utf8', $connect);如果你從一開始的編碼是一致的是不是真的需要。

1

1)檢查數據庫模式 - 是否設置了存儲utf-8的文本字段?

2)這聽起來像頁面這個腳本不發送UTF-8。它是否有正確的Content-Type標題? echo urlencode($var)顯示什麼? (這是一個整潔的黑客看到你得到的原始字節)

+0

表字符集是UTF8。提交包含utf8_general_ci的整理。 – 2012-04-05 18:39:30

+0

用另一種可能的解決方案更新了答案 – Cal 2012-04-05 18:41:32