当前位置: 首页 > 面试题库 >

我可以使用php获取字符的unicode值,反之亦然吗?

姜松
2023-03-14
问题内容

是否可以输入字符并取回unicode值?例如,我可以在HTML中输入&#12103以输出“⽇”,是否可以将该字符作为函数的参数并获得数字作为输出而无需构建unicode表?

$val = someFunction("⽇");//returns 12103

还是相反?

$val2 = someOtherFunction(12103);//returns "⽇"

我希望能够将实际字符输出到页面上而不是代码中,并且如果可能的话,我也希望能够从字符中获取代码。我最想要的是php.net/manual/en/function.mb-
decode-numericentity.php,但是我无法正常工作,这是我需要的代码还是我走错了轨道?


问题答案:
function _uniord($c) {
    if (ord($c{0}) >=0 && ord($c{0}) <= 127)
        return ord($c{0});
    if (ord($c{0}) >= 192 && ord($c{0}) <= 223)
        return (ord($c{0})-192)*64 + (ord($c{1})-128);
    if (ord($c{0}) >= 224 && ord($c{0}) <= 239)
        return (ord($c{0})-224)*4096 + (ord($c{1})-128)*64 + (ord($c{2})-128);
    if (ord($c{0}) >= 240 && ord($c{0}) <= 247)
        return (ord($c{0})-240)*262144 + (ord($c{1})-128)*4096 + (ord($c{2})-128)*64 + (ord($c{3})-128);
    if (ord($c{0}) >= 248 && ord($c{0}) <= 251)
        return (ord($c{0})-248)*16777216 + (ord($c{1})-128)*262144 + (ord($c{2})-128)*4096 + (ord($c{3})-128)*64 + (ord($c{4})-128);
    if (ord($c{0}) >= 252 && ord($c{0}) <= 253)
        return (ord($c{0})-252)*1073741824 + (ord($c{1})-128)*16777216 + (ord($c{2})-128)*262144 + (ord($c{3})-128)*4096 + (ord($c{4})-128)*64 + (ord($c{5})-128);
    if (ord($c{0}) >= 254 && ord($c{0}) <= 255)    //  error
        return FALSE;
    return 0;
}   //  function _uniord()

function _unichr($o) {
    if (function_exists('mb_convert_encoding')) {
        return mb_convert_encoding('&#'.intval($o).';', 'UTF-8', 'HTML-ENTITIES');
    } else {
        return chr(intval($o));
    }
}   // function _unichr()


 类似资料:
  • 问题内容: 我需要转换一个随机生成的盐值并将其存储在数据库中。为了将其存储在数据库中,我将其转换为字符串。然后,为了检索原始值,我将其转换回字节。但是两个值都不匹配。我已经尝试过“ UTF-8”,“ UTF-16”,BASE64Encoder。 上面代码的输出(执行两次): 和 问题答案: 在上面编写代码时,先打印,然后实际打印的是数组对象方法的输出,这只是默认的Object 方法。所以我看不出您

  • 问题内容: 有什么方法可以获取字符的键码吗?例如 有没有类似的东西? 谢谢 问题答案: 输出: 只是为了转义字符,您必须像字符一样使用

  • 问题内容: 如何在Python中将HTML实体转换为Unicode,反之亦然? 问题答案: 您需要有BeautifulSoup。

  • 问题内容: Java中有什么办法可以让我获得与任何字符均等的Unicode?例如 假设有一个方法。呼叫应该返回。 问题答案: 你可以使用以下一种衬里对任何Java字符进行处理: 但这仅适用于Unicode 3.0以下的Unicode字符,这就是为什么我建议你可以对任何Java字符都使用它。 由于Java是在Unicode 3.1出现之前进行设计的,因此Java的char原语不足以表示Unicode

  • 问题内容: 我将如何使用python将IP地址转换为十进制数字,反之亦然? 例如,对于,我想使用易于存储在数据库中的十进制或二进制形式,然后检索它。 问题答案: 将IP字符串转换为长整数: 另一种方式:

  • 问题内容: 我正在生成密钥,需要将其存储在数据库中,因此我将其转换为字符串,但是要从字符串中获取密钥。有哪些可能的方法可以做到这一点? 我的代码是 如何从字符串取回密钥? 问题答案: 您可以将转换为字节数组(),然后Base64将其编码为。要转换回a ,Base64 会对String进行解码,并在a中使用它来重建您的原始字符串。 对于Java 8 字符串的SecretKey: 字符串到Secret