xml 파일에 추가하기 전에 $ XML_COMMENT의 유로 기호를 "유로"로 바꾸고 싶습니다. PHP preg_replace "유로"로 로그인
은 € 기호 SimpleXML을에서 내가 할 UTF-8 문자 및 오류 메시지가없는 유로 기호 ', ¬' 로 MySQL을 (UTF-8) 데이터베이스에 나타납니다Warning: SimpleXMLElement::addAttribute(): string is not in UTF-8 in ...
Warning: SimpleXMLElement::asXML(): output conversion failed due to conv error, bytes 0x82 0x26 0x61 0x6D in ....
하지만 웹 페이지의 텍스트 영역에 올바르게 표시됩니다. 여기에 내 코드
의 I는 UTF-8 사방 (MySQL은, 웹 페이지 및 XML)을 사용하고 있습니다 :
나는 성공을 참고없이 서로 다른 않는 str_replace
$XML_COMMENT=str_replace('€','euros',$XML_COMMENT)
$XML_COMMENT=str_replace('€','euros',$XML_COMMENT)
$XML_COMMENT=str_replace(chr(128),'euros',$XML_COMMENT)
$XML_COMMENT=str_replace(chr(0xE2).chr(0×82).chr(0xAC),'euros',$XML_COMMENT)
$XML_COMMENT=str_replace(chr(0x82).chr(0x26).chr(0x61).chr(0x6D),'euros',$XML_COMMENT)
을 사용하려
// ? : $XML_COMMENT= "bla bla bla € bla bla bla";
// ? : $XML_COMMENT= "bla bla bla € bla bla bla";
// expected : $XML_COMMENT= "bla bla bla euros bla bla bla";
$ProductLog_XML = simplexml_load_file($file);
$ProductUpdate = $ProductLog_XML->order->product->addChild('update');
$ProductUpdate->addAttribute('comment',$XML_COMMENT);
$fp=fopen(file, "w");
fwrite($fp, $ProductLog_XML->asXML());
fclose($fp);
regex/preg_replace를 사용하는 다른 방법이 있습니까?
나는 어디에서나 utf-8을 사용하고 있습니다. 대부분의 경우 편집기가 잘못 구성되어 있고 다른 인코딩을 사용합니다. – phihag
나는 그것을 utf-8로 확인했다. utf-8 인코딩으로 작동한다. 내 charset을 지정한 메타 태그를 제거했을 때 제대로 작동했다. !!!!! ---- 이해할 수 없다 : 어떤 종류의 캐릭터가 될까? –
@phihag 당신은 그것을 어떻게 말합니까? 나는 $ XML_COMMENT가 utf-8에서 왔기 때문에 편집자가 내 문제와 관련이 없다고 생각합니다. UTF-8 웹 페이지에서 제공되는 MySQL 테이블 – baptme