Проблем с encoding под IE и readAsText


1

Здравейте, правя си едно приложение целта на което е да валидира и редактира текстов файл за който едно от изискванията е да е с Windows-1251 (CP1251) кодировка. Написал съм "reader.readAsText(file,'CP1251');" под chrome, FF и Opera работи, под сафари хич, но ПРОБЛЕМА МИ Е IE - там ми вади каракацили. Качил съм тестово демо на http://kanchev.cloudvps.bg/filedrag2/ за да тествате е достатъчно да си направите файл със следното съдържание:

"123456789","ДРЪН ДРЪН ТА ПЛЯС",0,"","","",7,2013,01/08/2013,0,5,719.05

или http://forums.academy.telerik.com/?qa=blob&qa_blobid=16437203849791913470

П.С. Помежду другото ако някой може да ме насочи как да направя таблицата пиксел пърфект спрямо http://www.nap.bg/document?id=3913

 




Отговори



1

Току що го пуснах под дебъгера и проблемът наистина е в четенето; в e.target.result всички кирилски знаци са заменени с 0xfffd, който се използва когато четецът се натъкне на невалидни данни. Вероятно има някакъв недостатък в имплементацията или особеност в API-то на IE - ще трябва да research-неш сам.


от staafl (5770 точки)


0
ако нищо друго не проработи, предлагам да опиташ да прочетеш файла по байтове и да го конвертираш ръчно - CP1251 към UTF 16 е просто мапване на няколко диапазона от знаци. ако стигнеш дотам пиши, ще пробвам да ти помогна.

от staafl (5770 точки)

0
Точно това си мислех да направя :) явно няма друг начин.

от kanchev_k (319 точки)