"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como extrair pontos de código UCS-2 dos caracteres UTF-8 no PHP?

Como extrair pontos de código UCS-2 dos caracteres UTF-8 no PHP?

Postado em 2025-02-06
Navegar:824

How to Extract UCS-2 Code Points from UTF-8 Characters in PHP?

Determinando os pontos do código UCS-2 para os caracteres utf-8 em php

A tarefa em questão é extrair os pontos de código UCS-2 para caracteres dentro de uma determinada string UTF-8. Para conseguir isso, uma função PHP personalizada pode ser definida. Cada caractere é representado por uma sequência de 1 a 4 bytes, dependendo do seu ponto de código Unicode. The ranges for each byte size are as follows:

0xxxxxxx: 1 byte
  • 110xxxxx 10xxxxxx: 2 bytes
  • 1110xxxx 10xxxxxx 10xxxxxx: 3 bytes
  • 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx: 4 bytes
  • para determinar o número de bytes por caractere, examine o primeiro byte:

& &&] 110: 2 BYTE CARETE
  • 1110: 3 Byte caracteres
  • 11110: 4 Byte caracteres
  • 10: Byte de continuação
  • 1111: &&&]
  • Quando o número de bytes for determinado, a manipulação de bit pode ser usada para extrair o ponto de código. Na análise acima, aqui está uma função PHP personalizada que leva um único caractere UTF-8 como entrada e retorna seu ponto de código UCS-2:
  • função get_ucs2_codepoint ($ char) { // inicialize o ponto de código $ codePoint = 0; // Obtenha o primeiro byte $ primeiroByte = ord ($ char); // determinar o número de bytes if ($ FirstByte

    Exemplo de uso:

    Para usar a função, basta fornecer um caractere utf-8 como entrada:

    $ char = " ñ "; $ codePoint = get_ucs2_codePoint ($ char); eco "UCS-2 Código ponto: $ codePoint \ n";
function get_ucs2_codepoint($char)
{
    // Initialize the code point
    $codePoint = 0;

    // Get the first byte
    $firstByte = ord($char);

    // Determine the number of bytes
    if ($firstByte  output: 

UCS-2 Código Ponto: 241

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3