mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
GB18030-2022 is the current official standard, superseding the previous 2005 and 2000 versions. It is essential for modern Chinese text processing for the following reasons:
1. Superset Relationship: GB18030 is a strict superset of CP936 (GBK) and EUC-CN (GB2312). Using GB18030 as the detection target covers all characters in these older encodings while enabling support for a much wider range of characters.
2. Extended Character Coverage: The 2022 standard includes significant updates, covering over 87,000 characters. It adds support for CJK Extensions (C, D, E, F, G) and updates mappings for rare characters that were previously mapped to the Private Use Area (PUA) in the 2005 version. This is critical for correctly handling names containing rare characters (e.g., in banking or government data).
3. Backward Compatibility: It is safe to promote GB18030-2022 as the preferred encoding. Files encoded in EUC-CN or CP936 are valid GB18030 streams.
This PR adds GB18030-2022 to the default encoding list for CN.
77 lines
2.8 KiB
Plaintext
77 lines
2.8 KiB
Plaintext
PHP 8.6 INTERNALS UPGRADE NOTES
|
|
|
|
1. Internal API changes
|
|
|
|
2. Build system changes
|
|
|
|
3. Module changes
|
|
|
|
4. OpCode changes
|
|
|
|
5. SAPI changes
|
|
|
|
========================
|
|
1. Internal API changes
|
|
========================
|
|
|
|
. ZSTR_INIT_LITERAL(), zend_string_starts_with_literal(), and
|
|
zend_string_starts_with_literal_ci() now support strings containing NUL
|
|
bytes. Passing non-literal char* is no longer supported.
|
|
. The misnamed ZVAL_IS_NULL() has been removed. Use Z_ISNULL() instead.
|
|
. New zend_class_entry.ce_flags2 and zend_function.fn_flags2 fields were
|
|
added, given the primary flags were running out of bits.
|
|
. The zval_is_true() alias of zend_is_true() has been removed. Call
|
|
zend_is_true() directly instead.
|
|
. The _zval_get_*() compatibility macros for PHP 7.2 have been removed
|
|
call the variant without the leading underscore instead.
|
|
Affected: _zval_get_long, _zval_get_double, _zval_get_string,
|
|
_zval_get_long_func, _zval_get_double_func, _zval_get_string_func
|
|
. CHECK_ZVAL_NULL_PATH() and CHECK_NULL_PATH() have been removed, use
|
|
zend_str_has_nul_byte(Z_STR_P(...)) and zend_char_has_nul_byte()
|
|
respectively.
|
|
. ZEND_LTOA() (and ZEND_LTOA_BUF_LEN) has been removed, as it was
|
|
unsafe. Directly use ZEND_LONG_FMT with a function from the
|
|
printf family.
|
|
. The zval_dtor() alias of zval_ptr_dtor_nogc() has been removed.
|
|
Call zval_ptr_dtor_nogc() directly instead.
|
|
. The internal zend_copy_parameters_array() function is no longer exposed.
|
|
. The zend_make_callable() function has been removed, if a callable zval
|
|
needs to be obtained use the zend_get_callable_zval_from_fcc() function
|
|
instead. If this was used to store a callable, then an FCC should be
|
|
stored instead.
|
|
. The zend_active_function{_ex}() functions now return a const zend_function
|
|
pointer.
|
|
. The zend_get_call_trampoline_func() API now takes the __call or
|
|
__callStatic zend_function* instead of a CE and a boolean argument.
|
|
. The zend_set_hash_symbol() API has been removed.
|
|
. Added zend_hash_str_lookup().
|
|
. The WRONG_PARAM_COUNT and ZEND_WRONG_PARAM_COUNT() macros have been
|
|
removed. Call zend_wrong_param_count(); followed by RETURN_THROWS();
|
|
instead.
|
|
. PHP_HAVE_STREAMS macro removed from <php.h>.
|
|
|
|
========================
|
|
2. Build system changes
|
|
========================
|
|
|
|
========================
|
|
3. Module changes
|
|
========================
|
|
|
|
- ext/xml:
|
|
. Removed the XML_ExpatVersion() libxml compatibility wrapper,
|
|
as it was unused.
|
|
. Removed the XML_GetCurrentByteCount() libxml compatibility wrapper,
|
|
as it was unused and could return the wrong result.
|
|
|
|
- ext/mbstring:
|
|
. Added GB18030-2022 to default encoding list for zh-CN.
|
|
|
|
========================
|
|
4. OpCode changes
|
|
========================
|
|
|
|
========================
|
|
5. SAPI changes
|
|
========================
|