<?php
header ( "Content-Type: text/plain; charset=utf-8" ) ;
function getUtf16Symbols( $str ) {
//convert to utf-16be
$str = iconv ( "utf-8" , "utf-16be" , $str ) ; $symbolList = [ ] ;
for ( $i = 0 ; $i < strlen ( $str ) ; $i += 2 ) { $symbolList [ ] = $str [ $i ] . $str [ $i + 1 ] ;
}
return $symbolList ;
}
function getUtfCodepoint( $char ) {
}
$str = "019azAZаяАЯ $ ½" ;
echo "String - $str \n " ;
echo "Codepoints list:\n " ;
$originalSymbols = preg_split ( "//u" , $str , null , PREG_SPLIT_NO_EMPTY
) ; $utf16Symbols = getUtf16Symbols( $str ) ;
for ( $i = 0 ; $i < count ( $originalSymbols ) ; $i ++ ) { echo $originalSymbols [ $i ] . " - " ;
echo getUtfCodepoint( $utf16Symbols [ $i ] ) . "\n " ;
}
PD9waHAKZXJyb3JfcmVwb3J0aW5nKC0xKTsKbWJfaW50ZXJuYWxfZW5jb2RpbmcoJ3V0Zi04Jyk7CmhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04Iik7CgoKZnVuY3Rpb24gZ2V0VXRmMTZTeW1ib2xzKCRzdHIpIHsKICAgIC8vY29udmVydCB0byB1dGYtMTZiZQogICAgJHN0ciA9IGljb252KCJ1dGYtOCIsInV0Zi0xNmJlIiwgJHN0cik7CiAgICAkc3ltYm9sTGlzdCA9IFtdOwogICAgZm9yICgkaSA9IDA7ICRpIDwgc3RybGVuKCRzdHIpOyAkaSArPSAyKSB7CiAgICAgICAgJHN5bWJvbExpc3RbXSA9ICRzdHJbJGldIC4gJHN0clskaSsxXTsKICAgIH0KICAgIHJldHVybiAkc3ltYm9sTGlzdDsKfQoKZnVuY3Rpb24gZ2V0VXRmQ29kZXBvaW50KCRjaGFyKSB7CiAgICAkaCA9IGRlY2hleChvcmQoJGNoYXJbMF0pKSAgLiBkZWNoZXgob3JkKCRjaGFyWzFdKSk7CiAgICByZXR1cm4gIHN0cnRvdXBwZXIoIlUrIiAuIHNwcmludGYoIiUwNHMiLCAkaCkpOwp9Cgokc3RyID0gIjAxOWF6QVrQsNGP0JDQryAkIMK9IjsKZWNobyAiU3RyaW5nIC0gJHN0clxuIjsKCmVjaG8gIkNvZGVwb2ludHMgbGlzdDpcbiI7Cgokb3JpZ2luYWxTeW1ib2xzID0gcHJlZ19zcGxpdCgiLy91IiwgJHN0ciwgbnVsbCwgUFJFR19TUExJVF9OT19FTVBUWSk7CiR1dGYxNlN5bWJvbHMgPSBnZXRVdGYxNlN5bWJvbHMoJHN0cik7Cgpmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkb3JpZ2luYWxTeW1ib2xzKTsgJGkrKykgewogICAgZWNobyAkb3JpZ2luYWxTeW1ib2xzWyRpXSAuICIgLSAiOwogICAgZWNobyBnZXRVdGZDb2RlcG9pbnQoJHV0ZjE2U3ltYm9sc1skaV0pIC4gIlxuIjsKfQ==