簡體   English   中英

不同版本的php之間DOMDocument中的重音問題

[英]Problem with accent in DOMDocument between different version of php

我在php中使用XML(DOMDocument)的舊應用程序。
該應用程序適用於PHP 5.2.5

$dom = new DOMDocument("1.0", "iso-8859-15");  
$dom->formatOutput = true;  
...  
$node->setAttribute('attr', 'value_with_éàè');  
$str = $dom->saveXML(); 

$ str被發送到Flex,一切正常。

現在,我們必須改變我們的服務器。 新版本的PHP是5.2.13。
在此版本中,函數setAttribute失敗。 (字符串不是utf-8 .....)
如果我看$ str,字符串會在第一個重音處被剪切掉。

如果我使用utf8_encode屬性,代碼可以工作。 問題是需要花費大量時間來解析代碼並添加utf8_encode .....
我正在尋找一個變量,一個標志或其他東西來保持應用程序像舊版本的PHP一樣工作。

有訣竅嗎?

到過那里。 我感覺到你的痛苦。 Caracter編碼問題本身就很痛苦。 添加MySQL,php和網絡服務器,你可以解決一些重要的問題。

首先,可以將工具集配置為使用IS0-8859-15。

你必須確保你使用的每個工具,php,mysql服務器,mysql-client(可通過my.conf或php配置),並為這個caracter集配置webserver。 您還必須確保數據庫表是ISO-8859-15,不要傳輸或打開任何未配置為ISO-8859-15的數據... ...( 咳嗽咳嗽 phpMyAdmin。)

我曾經遇到過問題,因為我在我的UTF8編輯器中打開了數據庫轉儲,然后將其加載到ISO-8859-1數據庫中,只是在編輯器中打開並重新保存它使用UTF8轉換損壞了文件。 當然這些問題讓你想要在牆上敲門,但請相信我,按照上面的步驟,找到使用UTF-8從DB開始的工具然后從那里開始,你將能夠在不改變的情況下為這些特殊的字符提供服務你的代碼。

祝你好運的朋友。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM