2009-09-23 5 views
0

양식이있는 HTML/PHP5 페이지가 있고 게시되면 폼 입력을 데이터로 사용하여 XML 파일을 만듭니다.PHP DOMDocument with åäö (UTF-8)

하지만 모두 åäö은 (는) utf8_encode()을 사용한 것과 같습니다. 나는 utf8_decode()을 사용할 수 없다. 왜냐하면 XML 파일을 전송하는 "서비스"가 UTF-8이 아니라고 불평하기 때문이다.

파서가 실패했습니다. 이유 : 2 : 파서 ​​오류 : 입력이 적절하지 않습니다. UTF-8, 인코딩을 나타냅니다! 바이트 : 0xE5라면에는 0x73이 0x61 0x2E

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
     <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
     <title>Blabla></title> 
    </head> 

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<name>åäö</name> 

내가 대신 htmlentities()CDATA로 데이터를 전송, M b_convert_encoding()을 시도하고 php.ini 파일에 default_charset = "utf-8"을 변경하지만가 생각처럼 아무것도 작동했다.

어떻게해야합니까?

답변

0

DOMDocument에 아무런 문제가 없었습니다. 결과를 출력 할 때 htmlentities()에 UTF-8을 지정하는 것을 잊었습니다.

+0

데이터가 UTF-8 인 경우 출력용으로 UTF-8을 사용하지 않는 이유는 무엇입니까? – Gumbo

+0

그랬지만, htmlentities() 메소드의 표준 문자 세트가 ISO-8859-1이고, UTF-8 데이터에 htmlentities()를 사용했을 때 åäö가 ä ¤ ¶로 변형되었습니다. 데이터에서 htmlentities()를 사용하는 이유는 <>가있는 웹 페이지에 htmlentities()를 표시하는 것입니다. –