Получить данные CSV из буфера обмена (вставленные из Excel), содержащие символы с акцентом

Невозможно повторно выполнить рендеринг (обновление) компонента с помощью ajax, если сам компонент не отображается в первую очередь. Компонент должен всегда отображаться перед тем, как ajax может повторно отобразить его. Ajax использует JavaScript document.getElementById(), чтобы найти компонент, который необходимо обновить. Но если JSF не отобразил компонент на первом месте, то JavaScript не может найти что-либо для обновления.

Решение состоит в том, чтобы просто ссылаться на родительский компонент, который всегда отображается.


    ...
    
        
    


    

См. также:

30
задан namenlos 9 June 2009 в 03:02
поделиться

2 ответа

Хранилища Excel строка в буфере обмена с использованием кодировки символов Unicode. Причина, по которой вы получаете квадрат при попытке прочитать строку в ANSI, заключается в том, что этот символ не представлен в кодовой странице ANSI вашей системы. Вам следует просто использовать Unicode. Если вы собираетесь иметь дело с проблемами локализации, то ANSI - это больше проблем, чем оно того стоит.

Править: Джоэл Спольски написал отличное введение в кодировку символов, которое определенно стоит проверить: Абсолютный минимум. Каждый разработчик программного обеспечения должен абсолютно точно знать о Unicode и наборах символов (без оправданий!)

7
ответ дан 28 November 2019 в 00:31
поделиться

Ваша кодировка потока как UTF8 не работает. Байты для умляута преобразуются в символ Юникода «замещающий символ».

Вместо этого просто посмотрите на данные потока без каких-либо дополнительных инструкций по кодированию. Данные будут в некотором заданном формате, используемом Excel. Вы должны быть в состоянии определить, посмотрев на байт (ы), где находится unlaut. После этого вы сможете преобразовать его в UTF-8.

В худшем случае, если CSV Formatter выбрасывает все, что не является Ascii. В этом случае вы могли бы написать собственное средство форматирования данных.

В некоторых случаях разработчики Excel полагали, что CSV означает только Ascii. См. http://www.tech-archive.net/Archive/Excel/microsoft.public.excel.misc/2008-07/msg02270.html

1
ответ дан 28 November 2019 в 00:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: