PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPで特定の文字のUnicodeコードポイント値を取得する方法

PHPでは、mb_ord()関数を使うことで、指定した文字のUnicodeコードポイント値を簡単に取得できます。この関数はPHP 7以降のバージョンで利用可能です。mb_ord()は、コードポイントから文字を生成するmb_chr()関数と対になる存在であり、両者を組み合わせることで文字と数値の相互変換が可能になります。

構文

int mb_ord($str_string, $str_encoding)

パラメータ

mb_ord()関数は、以下の2つのパラメータを受け取ります。

  • $str_string − コードポイント値を調べたい対象の文字列を指定します。

  • $str_encoding − 文字エンコーディングを指定します。このパラメータを省略した場合、またはNULLを渡した場合は、内部エンコーディングの設定値が使用されます。

戻り値

mb_ord()関数は、指定された文字列の先頭文字に対応するUnicodeコードポイント値を返します。処理に失敗した場合はFalseを返します。

使用例

<?php
   echo "Get the numeric value of character \n";
   var_dump(mb_ord("B", "UTF-8"));
   var_dump(mb_ord("d", "UTF-8"));
   var_dump(mb_ord("\x80", "ISO-8859-2"));
   var_dump(mb_ord("\x80", "Windows-1251"));
?>

出力結果

上記のコードを実行すると、次のような出力が得られます。

Get the numeric value of characters
int(66)
int(100)
int(128)
int(1026)

出力の解説

この結果から、アルファベットの「B」は66、「d」は100というコードポイントを持つことが確認できます。また興味深い点として、同じバイト値「\x80」でも、指定するエンコーディングが異なれば返される値も変わります。ISO-8859-2では128、Windows-1251では1026となるため、マルチバイト文字を扱う際には適切なエンコーディングを明示的に指定することが重要です。

  1. C#でUnicode文字が区切り文字かどうかを判定する方法

    Unicode文字が区切り文字(セパレーター)であるかどうかを確認するには、Char.IsSeparator() メソッドを使用します。このメソッドは、指定されたUnicode文字が区切り文字カテゴリに分類される場合に true を、そうでない場合に false を返します。それでは、具体的なコード例を見ていきましょう。例1:カンマの場合using System; public class Demo { public static void Main(){ bool res; char val = ,; Console.WriteLine(Value

  2. Javaで文字のUnicodeカテゴリを判定する方法(Character.getType()の使い方)

    JavaのCharacterクラスはObjectクラスのサブクラスであり、プリミティブ型であるcharの値をオブジェクトとしてラップするためのクラスです。Character型のオブジェクトは、char型のフィールドを1つだけ持ちます。特定の文字がどのUnicodeカテゴリに属するかを調べたい場合は、getType()メソッドを使用します。このメソッドはCharacterクラスのstaticメソッドで、引数に渡された文字chが属するUnicodeの一般カテゴリ(General Category)を表すint型の値を返します。構文public static int getType(char ch)