function ARC_api_helper::adjust_utf8_string in Taxonomy import/export via XML 5.2
Same name and namespace in other branches
- 5 arc/ARC_api_helper.php \ARC_api_helper::adjust_utf8_string()
- 6.2 arc/ARC_api_helper.php \ARC_api_helper::adjust_utf8_string()
- 6 arc/ARC_api_helper.php \ARC_api_helper::adjust_utf8_string()
File
- arc/
ARC_api_helper.php, line 68
Class
Code
function adjust_utf8_string($val = "") {
if (utf8_decode($val) == $val) {
return $val;
}
$val = strpos(utf8_decode(str_replace("?", "", $val)), "?") === false ? utf8_decode($val) : $val;
$length = strlen($val);
$new_val = "";
$tmp = "";
$do_enc = true;
for ($i = 0, $i_max = $length; $i < $i_max; $i++) {
$is_special = false;
$cur_char = $val[$i];
$enc_char = rawurlencode($cur_char);
$new_char = "";
if ($cur_char == $enc_char) {
}
elseif ($enc_char == "%B4") {
$cur_char .= "'";
}
else {
$utf_char = utf8_encode($cur_char);
$bytes = strlen($utf_char);
if ($bytes > 1) {
$tmp .= $cur_char;
$is_special = true;
$cur_char = "";
}
else {
$cur_char = $utf_char;
}
}
if (!$is_special) {
$new_val .= $tmp ? $this
->adjust_utf8_char($tmp) . $cur_char : $cur_char;
$tmp = "";
}
}
/* remaining tmp ? */
if ($tmp) {
$new_val .= $this
->adjust_utf8_char($tmp);
}
return $do_enc ? utf8_encode($new_val) : $new_val;
}