Unicode — писать текст справа налево в текстовом файле с переполнением стека

Я хотел бы написать арабский текст внутри текстового файла с помощью php, но я не нашел, как писать текст справа налево. Я нашел эту статью понимание-двунаправленным текст
Где они объясняют, что я должен добавить перед строкой символы Юникода U + 202E и U + 202C после. Но я не знаю, как преобразовать этот символ Unicode в строку в PHP. Я пытался с чем-то вроде этого $content = "\u{202E}".$content."\u{202C}" но это не сработало.

2

Решение

Да, если ваш клиент не поддерживает двунаправленное поведение, вам необходимо применить силу. Это часто происходит в текстовых средах. Существует простой способ создания таких текстов в PHP, используя следующие функции:

function utf8 ( $codepoint ) {
// 200E = ltr mark
// 200F = rtl mark
return json_decode('"\u'.$codepoint.'"');
}

function rtl ( $string ) {
return utf8('200f').$string.utf8('200e');
}

function ltr ( $string ) {
return utf8('200e').$string.utf8('200f');
}

Первая функция переводит кодировку Unicode UTF-8. Вторая функция возвращает строку с метками справа налево, а третья возвращает строку с метками слева направо. Исходное направление восстанавливается в обоих случаях в конце строки.

От клиента все еще зависит, будет ли визуализировано направление письма.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector