我在字符編碼方面沒有什麼問題。數據庫,字符編碼,PDF和XML
的情況
文件上傳被轉換成XML。該文件的字符編碼會有所不同,但是可能會出現智能引號,實體和各種ASCII。一旦這個文件被轉換成XML,它被存儲在一個數據庫中。根據用戶的請求,XML可能會從數據庫中提取出來並轉換成數組,然後將其創建爲PDF。
問題
字符編碼。字符編碼從一開始就發揮了重要的作用。我想知道;
- 什麼字符編碼通常涵蓋整個「頻譜」。例如,
°
解析XML或智能報價時無法識別(’
)。智能報價將變成’
等等 - 如何在數據庫中存儲XML。加密是一種可能性,但是數據庫編碼是我迷失的地方。
- 如何讓實體,智能引號(以及其他可能導致問題的字符)在數據庫中正確顯示,並在屏幕前顯示
Å
。
嘗試在周圍的工作
我做了這「嘗試」來解決我的問題,各種功能 - 將某些字符轉換成另一種。不過,我認爲這是完全是這樣做的錯誤方法,我應該改變字符編碼。
/*
* Converts smart quotes to ascii
*/
function convert_smart_quotes($string) {
$string = iconv("UTF-8", "UTF-32", $string);
$string = mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-32');
$string = str_replace('', '', $string);
$search = array('‘', '’', '“', '”', '—');
$replace= array("'", "'", '"', '"', '-');
$string = str_replace($search, $replace, $string);
return $string;
}
/*
* Converts some entities to an ISO format?
*
* Example : ° => °
*/
function entity_to_iso($string) {
return html_entity_decode($string, ENT_QUOTES & ~ENT_COMPAT, 'ISO-8859-1');
}
最終,我的問題在於我不知道上傳文件的編碼。我有一個switch
的想法,試圖將字符轉換爲更多的數據庫和「PDF格式友好」。然而,谷歌搜索引發了很多苦惱的工作或數組,其中一件事情到另一件事情。這真的是解決方案嗎?
任何建議,解決方案或手指指向一個更好的方向都是有益的,非常讚賞。謝謝。
hello mate,我有類似的問題,你有沒有得到任何與此? – Drakoumel 2013-06-01 20:44:56