Использование команды кодирования Tcl для преобразования традиционного китайского в упрощенный китайский - PullRequest
1 голос
/ 23 июня 2009

Я поддерживаю веб-сайт, написанный на Tcl, который отображает данные на традиционном китайском (big5). Затем у нас есть Java-сервлет, использующий код перевода с сайта mandarintools.com, для перевода запроса страницы на упрощенный китайский. Преобразование, как указано в коде перевода, происходит из UTF-8 в UTF-8S; Java, по-видимому, правильно переводит данные в UTF-8 по мере поступления.

Код для перевода на Java работает, но работает медленно, и, поскольку сайт написан на Tcl, кто-то из другого списка предложил мне попробовать это. К сожалению, Tcl не поддерживает UTF-8S, и я не смог понять, какой перевод использовать вместо него. Я пробовал gb2312, gb2312-raw, gb1988, euc-cn ... все приводит к бреду. Я предполагаю, что Tcl также переводит на UTF-8 по мере поступления, хотя я сначала попытался конвертировать из big5, и это не помогает.

Мой тестовый код выглядит так:

set page_body [ns_httpget http://www.mysite.com]
set translated_page_body [encoding convertto gb2312 $page_body]
ns_write $translated_page_body

я тоже пробовал

set page_body [ns_httpget http://www.mysite.com]
set translated_page_body [encoding convertto gb2312 [encoding convertfrom big5 $page_body]]
ns_write $translated_page_body

Но это ничего не изменило.

У кого-нибудь есть достаточно опыта, чтобы помочь мне разобраться?

Ответы [ 2 ]

1 голос
/ 03 июля 2009

К вашему сведению, для полной полноты мне сказали эксперты Tcl, что вы не можете выполнить преобразование таким образом, это должно быть сделано путем замены персонажа.

0 голосов
/ 23 июня 2009

Случайно, вы берете свои данные из Oracle?

Если это так, посмотрите, можете ли вы использовать функцию CONVERT для преобразования из «utf8» в «al32utf8», что является истинным стандартом Utf8 и с которым Tcl должен работать без проблем.

Если нет, я думаю, я подожду от вас комментариев.

...