Форум: "WinAPI";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
ВнизАрабский язык & Delphi Найти похожие ветки
← →
arab (2007-10-12 15:29) [0]Как можно корректно отображать арабские символы на компьютере, на котором неизвестно установлена ли поддержка его?
Собственно я использую ф-июfunction WideStringToString(const ws: WideString; codePage: Word): AnsiString;
var
l: integer;
begin
if ws = "" then
Result := ""
else
begin
l := WideCharToMultiByte(codePage,
WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
@ws[1], - 1, nil, 0, nil, nil);
SetLength(Result, l - 1);
if l > 1 then
WideCharToMultiByte(codePage,
WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
@ws[1], - 1, @Result[1], l - 1, nil, nil);
end;
end;
с кодовой страницей 1256.
Работает чудесно на ПК, где есть поддержка арабского. Можно ли и как схитрить на той машине, где поддержки оного нет?
← →
Игорь Шевченко © (2007-10-12 15:40) [1]
> Можно ли и как схитрить на той машине, где поддержки оного
> нет?
Можно, наверное. Используя TNT-библиотеку компонентов и работая только с Unicode
← →
Desdechado © (2007-10-12 16:09) [2]Но если шрифты не установлены, то хитри-не хитри, увидишь только вопросики.
← →
arab (2007-10-12 16:28) [3]
> Но если шрифты не установлены, то хитри-не хитри, увидишь
> только вопросики.
Да вот вопросиков и нет, даже если нет поддержки арабского в региональных настройках (Font=Tahoma+CharSet=ARABIC_CHARSET).
Только корявенько показывает даже как на такого специалиста в арабском, как я.
← →
DrPass © (2007-10-13 00:44) [4]
> Да вот вопросиков и нет, даже если нет поддержки арабского
> в региональных настройках
Ага. Я тоже думал, что это оно так коряво показыват арабские символы. Пока моя благоверная (арабка, к слову) не глянула и не спросила, что это за закорючки на экране накаляканы. Когда установил поддержку арабского, все стало отображаться как надо.
← →
Германн © (2007-10-13 01:12) [5]Удалено модератором
← →
DrPass © (2007-10-13 01:41) [6]Удалено модератором
← →
Германн © (2007-10-13 01:55) [7]Удалено модератором
← →
Германн © (2007-10-13 02:15) [8]Удалено модератором
← →
DrPass © (2007-10-13 02:26) [9]Удалено модератором
← →
Германн © (2007-10-13 02:51) [10]Удалено модератором
← →
arab (2007-10-13 12:48) [11]Во, блин, такую тему зафлудили...
Вот у меня получилось отобразить арабский под кодовой странице 1256 на голой виртуальной машине, где нет поддержки арабского. Только отображает реверсивно.
Но странность в том, что у клиента отображаютья местами знаки вопросов.
В чём же может быть проблема???
Помогите, пожалуйста!!!
← →
Anatoly Podgoretsky © (2007-10-13 13:17) [12]Это означает, что часть символов невозможно превратить в 1256, не арабские (из 1256) и не английские. Это нормальное поведение.
Хочешь нормальную работу - переходи на Юникод
← →
arab (2007-10-13 13:38) [13]А можно функцию перекодировки в Юникод?
← →
Anatoly Podgoretsky © (2007-10-13 13:47) [14]А зачем тебе перекодировать, то что у тебя и так в Юникод - widestring это и есть Юникод, а если из строки, то обратная функция MultiByteToWideChar или если локализация для не Юникод программ совпадает, то S := WS
← →
arab (2007-10-13 15:04) [15]
> Anatoly Podgoretsky
Ну вот конкретный мой жалкий пример:
есть база Access, поле с арабскими строками
Как мне их отображать в компонентах (cxGrid, Button, Label etc)? Какой Font и CharSet установить или как конвертировать?
Я, как уже писал, использую ф-ию WideStringToString + CharSet = ARABIC_CHARSET + Font.Name = Tahoma.
Как следствие, у меня всё хорошо отображается, а у клиента - нет (((
Помогите, пожалуйста!
← →
Anatoly Podgoretsky © (2007-10-13 15:50) [16]> arab (13.10.2007 15:04:15) [15]
Используй Юникод компонент и ничего не надо конвертировать.
← →
Desdechado © (2007-10-13 16:01) [17]> А можно функцию перекодировки в Юникод?
Тебе уже сказали, что VCL не поддерживает юникод. Используй TNT unicode controls Игорь Шевченко © (12.10.07 15:40) [1]
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c