PDA

Просмотр полной версии : Немецкие и французские буквы - как отобразить


RFMitrio
22.01.2003, 17:05
Гружу данные из БД:
mc.loadvariables("loadvars.php","POST");
Данные отображаются в текстовых полях со шрифтом ArialTUR, при этом all characters включены. но немецкие и французские символы отображаются как простая латиница. В чем проблема и как этого избежать?
---
Спасибо!

RFMitrio
23.01.2003, 15:33
Поднимаю топик, ибо очень нужно. Знаю, что вы знаете ответ ;)

Nox Noctis
23.01.2003, 20:00
а что за тюркский ариал ? =)

и как это хранится в БД ? как нелатинские символы кодируются ?
или прямо так и написаны ?

а юникод включить не забыл ? =) (не надо на меня так смотреть - а вдруг правда =) )

RFMitrio
23.01.2003, 20:33
О Нокс! Думаю, ты в курсе, чем помочь. :) Спасай мою душу:)
Поясняю: есть .txt-файл с этими самыми словами с нем. и франц. символами. Он напрямую читается .php-скриптом в БД MySQL и записывается. Потом обычным образом в виде строки передается через loadVariables().
Дальше происходит следующее:
тюркский ариал
Я использовал этот шрифт, потому что в нем есть немецкие и французские буквы, а в обычном ариале их нет ( в смысле, если сделать из юникодовского файла копи-пейст, то в текстовое поле с тюркским ариалом символы вставятся нормально, а если обычный ариал - нет).
или прямо так и написаны ?
так и написаны:)
Так вот, если включить all characters - показываются латинские буквы. Если отключить - вместо неизвестных символов - квадратики.
Если поставить System.useCodepage=1 - вообще левые символы типа "Й".
а юникод включить не забыл ?
О! Может здесь собака порылась? Я просто не понял, что ты имеешь в виду=))
---
А то я вижу только один выход, но он геморройный: кодировать на пхп (не знаю как, пока) неизвестные символы в виде \uXXXX, то есть в виде юникода, а флэш потом уж сам разбирается со строкой=) Но думаю, можно проще.

Nox Noctis
24.01.2003, 01:10
я видел такой косяк... по-моему у тебя тот же случай.

в нетскейпе проверь кстати. что-то мен подсказывает что все будет намально =)

в експлорере даже эскейпнутые символы (т.е. уже через %xx) приходят от скрипта в неправильном виде... вместо умляутов например - просто буквы без точек там всяких...

а в нетскейпе, как это ни парадоксально звучит, все работает.

решилось это именно кодированием символов.
а заменить все вхождения нужной последовательности в строке на символ очень просто:

string.split("%some_code").join("the_symbol");