Jump to content

Как исправить текстовые поля

Featured Replies

Posted
comment_178040

Я только что понял, что все настраиваемые текстовые поля показывают странные символы в базе данных.

Например, «João» получается как «Jo\u00e3o».

Я думаю, что это связано с system\Text\Parser.php, но я не уверен, что нужно изменить, чтобы символы отображались правильно.

Настройки базы данных выглядят правильно:

chrome_rfgRTKxNS5.png.d16ccc68b6ee42f470a6bd90827b27f8.png

Edited by BlackShot

  • Author
comment_178077
2 hours ago, Desti said:

standard setup, no problem

image.png.fddaa5ceaa8edc08137a2d43edb69599.png

Пробовали ли вы создать пользовательское *текстовое* поле в Nexus/Commerce? Я получил этот ответ от кого-то:

Quote

Прежде всего, \u00e3 не генерируется MySQL. Однако он может быть сгенерирован функцией PHP json_encode(). Обязательно используйте JSON_UNESCAPED_UNICODE во втором аргументе этой функции.

Для использования в таблицах MySQL я предпочитаю, чтобы настройки подключения и сервера были постоянно установлены на utf8mb4, чтобы данные Unicode просто появлялись и исчезали без преобразования.

 

  • Author
comment_178121
18 hours ago, Desti said:

image.png.3b96b2627d032db25cde0399b32518a4.png

Mine doesn't have that cm prefix. Maybe it's an older/newer version? Anyway, how about core_pfields_data (pf_content) or nexus_support_fields (sf_extra)?

image.png.09430ed3cf5137a467386c5e40077d58.png

comment_178125

system/CustomField/CustomField.php - 

Search json_encode and edit string

$values[ static::$databasePrefix . $k ] = ( $k === 'content' ? json_encode( $_value, JSON_UNESCAPED_UNICODE ) : $_value );

All custom field (and nexus too) must work properly

Edited by Desti

  • Author
comment_178151
18 hours ago, Desti said:

system/CustomField/CustomField.php - 

Search json_encode and edit string

$values[ static::$databasePrefix . $k ] = ( $k === 'content' ? json_encode( $_value, JSON_UNESCAPED_UNICODE ) : $_value );

All custom field (and nexus too) must work properly

Aha! Works perfectly now - you're a legend! Why do you think IPS didn't have that added in the first place? You think they just missed it, didn't consider their international userbase, or does it affect performance/security? 🤔

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.