peachpiecompiler / peachpie

PeachPie - the PHP compiler and runtime for .NET and .NET Core
https://www.peachpie.io
Apache License 2.0
2.31k stars 201 forks source link

mb_ series functions have errors #1143

Open wujwmail opened 1 month ago

wujwmail commented 1 month ago

Issues discovered through the experimental project https://github.com/wujwmail/PHPExcel_test:

The mb_ series functions have errors when handling UTF-16LE and UTF-16BE character encodings! For example:

  <?php

    $utf8_str="这是一个测试";

    $iconv_utf16=iconv('UTF-8', 'UTF-16LE', $utf8_str);

    echo "iconv_to_UTF-16: ".base64_encode($iconv_utf16).PHP_EOL;

    $mb_utf16 = mb_convert_encoding($utf8_str, 'UTF-16LE','UTF-8');

    echo "mb_xx_to_UTF-16: ".base64_encode($mb_utf16).PHP_EOL;

Native PHP execution results:

      iconv_to_UTF-16: 2Y8vZgBOKk5LbdWL
      mb_xx_to_UTF-16: 2Y8vZgBOKk5LbdWL

Peachpie execution results:

      iconv_to_UTF-16: 2Y8vZgBOKk5LbdWL
      mb_xx_to_UTF-16: 6L+Z5piv5LiA5Liq5rWL6K+V