
DOMDocument::saveXML() 함수는 XML 파일에 문자를 인코딩할 때 UTF-8 인코딩을 사용합니다. 하지만, PHP가 UTF-8 인코딩을 지원하는 환경에서만 제대로 작동합니다.
PHP가 UTF-8 인코딩을 지원하지 않는 환경에서 DOMDocument::saveXML() 함수를 사용하면 한글 문자가 제대로 인코딩되지 않을 수 있습니다.
이러한 문제를 해결하기 위해 다음 방법을 사용할 수 있습니다.
1. PHP의 인코딩을 UTF-8로 설정합니다. PHP의 인코딩을 UTF-8로 설정하면 DOMDocument::saveXML() 함수가 제대로 작동합니다.
#hostingforum.kr
php
ini_set('default_charset', 'UTF-8');
2. DOMDocument 객체의 인코딩을 UTF-8로 설정합니다.
#hostingforum.kr
php
$doc->encoding = 'UTF-8';
3. XML 파일에 한글 문자를 직접 인코딩합니다. 한글 문자를 인코딩할 때 UTF-8 인코딩을 사용합니다.
#hostingforum.kr
php
$root->nodeValue = iconv('UTF-8', 'UTF-8//IGNORE', '한글 문자');
위의 예에서 한글 문자를 XML 파일에 제대로 저장할 수 있도록 수정된 코드는 다음과 같습니다.
#hostingforum.kr
php
ini_set('default_charset', 'UTF-8');
$doc = new DOMDocument();
$doc->encoding = 'UTF-8';
$root = $doc->createElement("root");
$root->nodeValue = iconv('UTF-8', 'UTF-8//IGNORE', '한글 문자');
$doc->appendChild($root);
$doc->saveXML("example.xml");
이 코드는 한글 문자를 XML 파일에 제대로 저장합니다.
2025-06-18 23:04