Как я могу ограничить символы юникода из базы данных?

У меня есть мой родной языковой магазин в базе данных MySQL выглядит так

ផោន រក ចំណូល បាន ខ្ពស់ បំផុត មួយ នៅ លើ ដោយ រក រក ជិត ១ ១ ផោន ផោន

но я хочу ограничить это только 100 символами, чтобы показать, и если больше чем 100 показывают...

Я использую этот код

echo substr($row[1],0,100).((strlen($row[1])>100)? '...': '');

Это хорошо работает, если данные в базе данных состоят из английских символов, но для моего символа на родном языке это не работает. В базе данных я установил

Тип = текст, сопоставление = utf8_general_ci

1 ответ

SELECT
        CASE WHEN CHAR_LENGTH(khmer) > 100 THEN khmer
            ELSE CONCAT(LEFT(khmer, 98), '...')
            END
    FROM ...

Обратите внимание на использование CHAR_LENGTH вместо LENGTH,

Другие вопросы по тегам