私はこのために取り組んでいますcode JonとMarioによって書かれています。ヒンディー語の子音では機能しますが、母音では機能しません。一つの理由は、私は手紙のための2つのコード・ポイントを供給することはできませんよ可能(अः)PHPで2バイトのコードポイントを使用する
私は範囲のためにこれらのコードをしようとしています - अ - अःこの同様のループのためにしようとしました
// Used decimal number.
// Error - Fatal error: Allowed memory size of 134217728 bytes
foreach (range(2309, 23092307) as $char) {
$char = html_entity_decode("&#$char;", ENT_COMPAT, "UTF-8");
$alphabets[$char] = ++$i;
}
print_r($alphabets);
- "($ charとして範囲(0x0905、 '0x0905の0x0903'))foreachの" また
、このコード:
// Output is Japanese/Chinese characters:
//
function unichr($intval) {
return mb_convert_encoding(pack('n', $intval), 'UTF-8', 'UTF-16BE');
}
function uniord($u) {
$k = mb_convert_encoding($u, 'UCS-2LE', 'UTF-8');
$k1 = ord(substr($k, 0, 1));
$k2 = ord(substr($k, 1, 1));
return $k2 * 256 + $k1;
}
for($char = uniord('अ'); $char <= uniord('अः'); ++$char) {
$alphabet[] = unichr($char);
}
print_r($alphabet);
それが見えますファイルエンコーディングもありました!今度はこれを返すようになりました: Array([0] =>å)//ただ1行 私はutf-8とutf-16のドキュメントエンコーディングを試しました。
私はコードポイントを取得するためにこのサイトを使用: http://www.branah.com/unicode-converterअため - अः –
あなたの最初のバージョンは23の配列を作成しようとしています* *ミリオン**の文字。 UTF-8の場合、1文字あたり最大4バイトになる可能性があるため、理論的には、文字データの場合は80 MBの北のどこかに配列が格納され、次にPHPのオーバーヘッドが考慮されます。 –