// The following code might be better for mb_string enabled installs, but makes the lib about 200% slower...
//if (!is_valid_charset($valEncoding, array('UTF-8'))
if (!in_array($valEncoding, array('UTF-8', 'US-ASCII')) && !XMLParser::hasEncoding($xmlVal)) {
- if ($valEncoding == 'ISO-8859-1') {
- $xmlVal = utf8_encode($xmlVal);
+ if (extension_loaded('mbstring')) {
+ $xmlVal = mb_convert_encoding($xmlVal, 'UTF-8', $valEncoding);
} else {
- if (extension_loaded('mbstring')) {
- $xmlVal = mb_convert_encoding($xmlVal, 'UTF-8', $valEncoding);
+ if ($valEncoding == 'ISO-8859-1') {
+ $xmlVal = utf8_encode($xmlVal);
} else {
$this->getLogger()->errorLog('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of xml text: ' . $valEncoding);
}
case 'ISO-8859-1_UTF-8':
$escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&', '"', ''', '<', '>'), $data);
+ /// @todo if on php >= 8.2, prefer using mbstring or iconv
$escapedData = utf8_encode($escapedData);
break;
// The following code might be better for mb_string enabled installs, but makes the lib about 200% slower...
//if (!is_valid_charset($respEncoding, array('UTF-8')))
if (!in_array($respEncoding, array('UTF-8', 'US-ASCII')) && !XMLParser::hasEncoding($data)) {
- if ($respEncoding == 'ISO-8859-1') {
- $data = utf8_encode($data);
+ if (extension_loaded('mbstring')) {
+ $data = mb_convert_encoding($data, 'UTF-8', $respEncoding);
} else {
-
- if (extension_loaded('mbstring')) {
- $data = mb_convert_encoding($data, 'UTF-8', $respEncoding);
+ if ($respEncoding == 'ISO-8859-1') {
+ $data = utf8_encode($data);
} else {
$this->getLogger()->errorLog('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of received response: ' . $respEncoding);
}
// makes the lib about 200% slower...
//if (!is_valid_charset($reqEncoding, array('UTF-8')))
if (!in_array($reqEncoding, array('UTF-8', 'US-ASCII')) && !XMLParser::hasEncoding($data)) {
- if ($reqEncoding == 'ISO-8859-1') {
- $data = utf8_encode($data);
+ if (extension_loaded('mbstring')) {
+ $data = mb_convert_encoding($data, 'UTF-8', $reqEncoding);
} else {
- if (extension_loaded('mbstring')) {
- $data = mb_convert_encoding($data, 'UTF-8', $reqEncoding);
+ if ($reqEncoding == 'ISO-8859-1') {
+ $data = utf8_encode($data);
} else {
$this->getLogger()->errorLog('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of received request: ' . $reqEncoding);
}
mb_detect_encoding($this->latinString, 'ISO-8859-1, UTF-8, WINDOWS-1251, ASCII', true),
'Setup latinString is not ISO-8859-1 encoded...'
);*/
- $string = utf8_encode($this->latinString);
+ // the warning suppression is due to utf8_encode being deprecated in php 8.2
+ $string = @utf8_encode($this->latinString);
$encoded = $this->utf8ToLatin1($string);
$this->assertEquals(str_replace(array('&', '"', "'", '<', '>'), array('&', '"', ''', '<', '>'), $this->latinString), $encoded);
}
{
$string = 'a.b.c.å.ä.ö.€.';
$encoded = $this->utf8ToLatin1($string);
- $this->assertEquals(utf8_decode('a.b.c.å.ä.ö.€.'), $encoded);
+ // the warning suppression is due to utf8_decode being deprecated in php 8.2
+ $this->assertEquals(@utf8_decode('a.b.c.å.ä.ö.€.'), $encoded);
}
public function testUtf8ToLatin1Runes()
public function testUnicodeInErrorString()
{
- $response = utf8_encode(
+ // the warning suppression is due to utf8_decode being deprecated in php 8.2
+ $response = @utf8_encode(
'<?xml version="1.0"?>
<!-- $Id -->
<!-- found by G. Giunta, covers what happens when lib receives UTF8 chars in response text and comments -->
$s = $this->newMsg('dummy');
$f = "HTTP/1.1 200 OK\r\nContent-type: text/xml; charset=UTF-8\r\n\r\n" . '<?xml version="1.0"?><methodResponse><params><param><value><struct><member><name>userid</name><value>311127</value></member>
-<member><name>dateCreated</name><value><dateTime.iso8601>20011126T09:17:52</dateTime.iso8601></value></member><member><name>content</name><value>' . utf8_encode($string) . '</value></member><member><name>postid</name><value>7414222</value></member></struct></value></param></params></methodResponse>
+<member><name>dateCreated</name><value><dateTime.iso8601>20011126T09:17:52</dateTime.iso8601></value></member><member><name>content</name><value>' . @utf8_encode($string) . '</value></member><member><name>postid</name><value>7414222</value></member></struct></value></param></params></methodResponse>
';
$r = $s->parseResponse($f, false, 'phpvals');
$v = $r->value();
$this->assertEquals($string, $v);
$f = '<?xml version="1.0" encoding="UTF-8"?><methodResponse><params><param><value><struct><member><name>userid</name><value>311127</value></member>
-<member><name>dateCreated</name><value><dateTime.iso8601>20011126T09:17:52</dateTime.iso8601></value></member><member><name>content</name><value>' . utf8_encode($string) . '</value></member><member><name>postid</name><value>7414222</value></member></struct></value></param></params></methodResponse>
+<member><name>dateCreated</name><value><dateTime.iso8601>20011126T09:17:52</dateTime.iso8601></value></member><member><name>content</name><value>' . @utf8_encode($string) . '</value></member><member><name>postid</name><value>7414222</value></member></struct></value></param></params></methodResponse>
';
$r = $s->parseResponse($f, false, 'phpvals');
$v = $r->value();
$this->markTestSkipped('Miss mbstring extension to test exotic charsets');
return;
}
- $sendString = utf8_decode('élève');
+ // the warning suppression is due to utf8_decode being deprecated in php 8.2
+ $sendString = @utf8_decode('élève');
$str = '<?xml version="1.0"?>
<methodCall>
<methodName>examples.stringecho</methodName>