[horde] utf8 is not supported by MySQL
Ralf Lang
ralf.lang at ralf-lang.de
Tue Aug 16 21:11:05 UTC 2022
Hi,
Am 16.08.22 um 21:14 schrieb Mike Gabriel:
> Hi,
>
> On Di 26 Jul 2022 17:45:00 CEST, Arjen de Korte wrote:
>
>> Citeren Ferdinand Gruber <fer.grub at yahoo.de>:
>>
>>> I get this message utf8 is not supported by MySQL after login to my
>>> horde site.
>>>
>>> This message appears after I upgraded from openSUSE 15.3 to 15.4.
>>>
>>> I suspect it has something to do with the database version
>>>
>>> In Suse 15.3 the MariaDB version was 10.6.16
>>> In Suse 15.4 the MariaDB version is 10.6.7
>>>
>>> I think this might be the reason of the error.
>>>
>>> What can I do?
>>
>> Change
>>
>> $conf['sql']['charset'] = 'utf8';
>>
>> to
>>
>> $conf['sql']['charset'] = 'utf8mb3';
>>
>> in your 'horde/config/conf.php' file.
>
>
> Or apply this (partial) patch to Horde_Db:
> https://salsa.debian.org/horde-team/php-horde-db/-/blob/debian-sid/debian/patches/1012_php8.1.patch#L487
>
>
> (where I default to utf8mb4)
>
I am strictly and strongly in the utf8mb4 camp. utf8mb3 has proven to be
unsuitable for modern calendaring.
https://www.ralf-lang.de/2022/08/15/maintaina-horde-utf-8-on-php-8/
https://www.ralf-lang.de/2021/01/27/davx5-caldav-may-break-with-unicode-symbols-in-horde-kronolith-syncs/
That said, the issue is a bit larger. The encoding config is read and
used verbatim in places where you don't expect it - and depending on
which extension is handling your character conversions (iconv, mbstring)
and which PHP version is run on which OS version, you can run into trouble.
https://lists.horde.org/archives/dev/Week-of-Mon-20220801/029567.html
PHP 8 mbstring does no longer silently tolerate/ignore encoding names it
does not understand
https://www.php.net/manual/en/function.mb-convert-encoding.php
8.0.0 *mb_convert_encoding()* will now throw a ValueError
<https://www.php.net/manual/en/class.valueerror.php> when |to_encoding|
is passed an invalid encoding.
8.0.0 *mb_convert_encoding()* will now throw a ValueError
<https://www.php.net/manual/en/class.valueerror.php> when
|from_encoding| is passed an invalid encoding.
I've been looking for an appropriate place to put a reusable
lookup/conversion between db-specific encoding names and official
encoding names. My first hotfix went against the horde/share library but
this is not appropriate in the longer term.
https://github.com/maintaina-com/Share/commit/cb1db22efb480cd371c30aa5f22fd1383b28fb15
More information about the horde
mailing list