Получаю я строку 'Cтолешница:' и сравниваю с строкой 'Столешница:' получаемая кодировка неизвестна, поэтому я привожу её к одной. Короче делаю так
function local_string_decode($str)
{
$decode = mb_convert_encoding($str,mb_detect_encoding($str), "UTF-8");
return $decode;
}
//тут полученная строка при парсинге
$str1 = local_string_decode($product->characteristics_countertop_material_buff[$i]->plaintext);
//тут строка для сравнения
$str2 = local_string_decode('Столешница:');
//для сравнения многобайтовых строк применяется вроде как collator
if( collator_compare(collarot_create('ru_RU'),$str1,$str2)==0)
{
echo "Yeeeaa \n";
}else{
echo "Fail :(\n";
}
Получаю fail :(
$str1 = local_string_decode($product->characteristics_countertop_material_buff[$i]->plaintext);
$str2 = local_string_decode('Столешница:')
echo $str1."##".$str2."\n";
echo mb_detect_encoding($str1)."##".mb_detect_encoding($str2)."\n";
всё ровно
Cтолешница:##Столешница:
UTF-8##UTF-8
php --version
PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.19-1, Copyright (c) 1999-2017, by Zend Technologies
Что я делаю не так и чего я не знаю?