货币符号到数字编码

时间:2011-07-22 12:43:28

标签: php

我有很多货币符号。我想将它们转换为数字unicode,如£to£因为我需要提取这个数字163并使用它。

先谢谢。

4 个答案:

答案 0 :(得分:2)

有些人已经实施了"uniord";)

function uniord($c) {
    $h = ord($c{0});
    if ($h <= 0x7F) {
        return $h;
    } else if ($h < 0xC2) {
        return false;
    } else if ($h <= 0xDF) {
        return ($h & 0x1F) << 6 | (ord($c{1}) & 0x3F);
    } else if ($h <= 0xEF) {
        return ($h & 0x0F) << 12 | (ord($c{1}) & 0x3F) << 6
                                 | (ord($c{2}) & 0x3F);
    } else if ($h <= 0xF4) {
        return ($h & 0x0F) << 18 | (ord($c{1}) & 0x3F) << 12
                                 | (ord($c{2}) & 0x3F) << 6
                                 | (ord($c{3}) & 0x3F);
    } else {
        return false;
    }
}

答案 1 :(得分:1)

简单地使用ord函数有什么问题?

$symbol = "£";
$code = ord($symbol);  //should return 163

答案 2 :(得分:0)

URL Encode以十六进制格式提供所有内容,但转换为int时,它会为您提供UTF-8字符代码,而无需使用变通方法。

<?php echo hexdec(substr(urlencode('£'), -2, 2)); ?>

修改
或许mb_string可以帮助解决您的encoding问题。

答案 3 :(得分:-1)

如果您只想替换字符串中的某些字符,请使用replac函数:http://php.net/manual/en/function.str-replace.php

编辑:为此你需要事先知道代码,但你可以在这里找到最多:http://w3schools.com/tags/ref_entities.asp

美元,不在该列表中,是&amp;#36;