On the Zend Developer Zone today Alexander Veremyev shares some helpful hints he discovered about the DOM XML extension for PHP that could come in handy when working with different character encodings.
I recently worked with PHP's DOM XML extension while working on Zend Framework's Zend_Search_Lucene HTML highlighting capabilities, and uncovered some undocumented features and issues with the extension in regards to character encoding. The information contained in this article should also apply to other libxml-based DOM implementations, as PHP's DOM extension simply wraps that library.
There's five different tips he shares:
- Internal document encoding is always UTF-8
- Input data is always treated as UTF-8
- Text nodes and CDATA are stored as UTF-8 without transformations
- Document encoding does not affect loading behavior
- Save/dumping operations and encoding
He describes each of the points and includes some sample code and XML to parse to help illustrate each.