1

I am using simpleXML in PHP to fetch xml file. The thing is that xml file's encoding is not in utf-8. It is in euc-kr.

<?xml version="1.0" encoding="euc-kr" ?> 

So, if I used the simpleXML to fetch the data, the text which is not in english, just crash. (but it correctly prints structures and everything...its just that text in Korean crash) Is there anyway that I can set encoding for simpleXML?

OR is there anyway that I can change the xml file to encoding with utf-8??

I just tried using str_replace('euc-kr','utf-8',$data) to change the words, but that does not seem to change the original file types. Because it causes an error like

Input is not proper UTF-8, indicate encoding ! Bytes: 0xB0 0xB3 0xC6 0xF7

How can I resolve this problem? By the way, I have no permission to change the contents of the xml file

2 Answers 2

1

Assuming that you want to get the same charset out, I would use DomDocument. But if you want simplexml, you could load it through DomDocument then convert to simplexml:

$dom = new DomDocument('1.0', 'euc-kr');
$dom->load('file.xml'); // or loadXml($string);
$simple = simplexml_import_dom($dom->documentElement);

Then when you're done, just $dom->save($filename);...

Sign up to request clarification or add additional context in comments.

Comments

0

I just found out the solution.

$data = str_replace('euc-kr','utf-8',$data);
$data = iconv('euc-kr', 'utf-8', $data);

above codes have solved the solution.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.