70 lines
2.2 KiB
ReStructuredText
70 lines
2.2 KiB
ReStructuredText
.. include:: /Includes.rst.txt
|
|
|
|
.. _breaking-105695-1732540153:
|
|
|
|
===============================================
|
|
Breaking: #105695 - Simplified CharsetConverter
|
|
===============================================
|
|
|
|
See :issue:`105695`
|
|
|
|
Description
|
|
===========
|
|
|
|
The following methods have been removed from
|
|
:php:`\TYPO3\CMS\Core\Charset\CharsetConverter`:
|
|
|
|
* :php:`CharsetConverter->conv()`
|
|
* :php:`CharsetConverter->utf8_encode()`
|
|
* :php:`CharsetConverter->utf8_decode()`
|
|
* :php:`CharsetConverter->specCharsToASCII()`, use
|
|
:php:`CharsetConverter->utf8_char_mapping()` instead
|
|
* :php:`CharsetConverter->sb_char_mapping()`
|
|
* :php:`CharsetConverter->euc_char_mapping()`
|
|
|
|
This removes most helper methods that implemented conversions between different
|
|
character sets from the TYPO3 Core. The vast majority of websites now use UTF-8
|
|
and no longer require the expensive charset conversions previously provided by
|
|
the Core framework.
|
|
|
|
Impact
|
|
======
|
|
|
|
Calling any of the removed methods will trigger a fatal PHP error.
|
|
|
|
Affected installations
|
|
======================
|
|
|
|
The TYPO3 Core has not exposed any of this low-level functionality in upper
|
|
layers such as TypoScript for quite some time. The removal should therefore
|
|
have little to no impact on most installations.
|
|
|
|
The only cases that *may* be affected are import or export extensions that
|
|
perform conversions between legacy character sets (for example, those in the
|
|
EUC family). Affected extensions can mitigate this change by copying the
|
|
TYPO3 v13 version of the class
|
|
:php-short:`\TYPO3\CMS\Core\Charset\CharsetConverter`, including the relevant
|
|
files from :file:`core/Resources/Private/Charsets/csconvtbl/`, into their own
|
|
codebase.
|
|
|
|
The extension scanner will detect usages and classify them as weak matches.
|
|
|
|
Migration
|
|
=========
|
|
|
|
Avoid calling any of the removed methods. Extensions that still require this
|
|
functionality should copy the necessary logic into their own codebase or use a
|
|
third-party library.
|
|
|
|
This particular case has a direct substitution:
|
|
|
|
.. code-block:: php
|
|
|
|
// Before
|
|
$charsetConverter->specCharsToASCII('utf-8', $myString);
|
|
|
|
// After
|
|
$charsetConverter->utf8_char_mapping($myString);
|
|
|
|
.. index:: PHP-API, FullyScanned, ext:core
|