开发者

PHP 5, XSL and The Character Ú

开发者 https://www.devze.com 2023-03-02 12:25 出处:网络
Im having dificulty getting the letter Ú to render through PHP 5.3 and XSL. Its part of a string in a database and that is loaded into an XML 开发者_如何学Pythonnode within atags. However it cause

Im having dificulty getting the letter

Ú

to render through PHP 5.3 and XSL. Its part of a string in a database and that is loaded into an XML 开发者_如何学Pythonnode within a tags. However it causes the XSL/XML transformation to not render. Removing the character from the string fixes the problem instantly.

Any ideas?


What character encoding are you using? From the sounds of it you have some sort of character encoding mismatch.

If your XSL is using ISO-8559-1 (or ASCII equivalent) and you are trying to output to a page that is UTF-8 encoded then the character output will be off. It also works vice-versa.


Actually I don't know right answer but I have a solution like below :

"&".htmlentities("Ú");


Your XSL transformation engine probably interprets your document as non-well-formed XML because of encoding issues. If that text containing Ú is stored using some 8-bit encoding (like ISO-8859 variants), then this character will not produce a valid UTF-8 octet if it is used as such without any character conversion. Invalid characters in an XML document will mean it is not well formed XML and processing it as XML is forbidden.

There are many points where that encoding error might happen:

  • it could be stored in the database incorrectly
  • it could be read from the database incorrectly
  • you might produce your XML by concatenating strings that use different encodings
  • you might manipulate the text with a tool or method that can't handle your encoding or is not aware of it
  • your XSLT engine might not be aware of the correct encoding of the input stream resulting a rejected file even though it has no encoding error

My random guesses for the probable causes of that are points 3 and 5.

0

精彩评论

暂无评论...
验证码 换一张
取 消