[ 
https://issues.apache.org/jira/browse/CB-13570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16587676#comment-16587676
 ] 

Timothy Hambourger edited comment on CB-13570 at 8/21/18 4:20 PM:
------------------------------------------------------------------

OK, submitted (clearly). Our fork with fixes is at 
https://github.com/mi-corporation/cordova-plugin-file


was (Author: tim.hambour...@concretedata.com):
OK, submitted (clearly). Our fork with fixes is at 
[https://github.com/mi-corporation/cordova-plugin-file|https://github.com/mi-corporation/cordova-plugin-file.]

> FileReader#readAsText fails with multi-byte UTF-8 characters
> ------------------------------------------------------------
>
>                 Key: CB-13570
>                 URL: https://issues.apache.org/jira/browse/CB-13570
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-plugin-file
>    Affects Versions: 5.0.0, 4.2.0
>         Environment: Tested on:
>  * iOS 10.2
>  * cordova-ios 4.3.0
>  * UIWebView (not WKWebView)
>  * cordova 6.4.0
>  * cordova-plugin-file 4.2.0 and 5.0.0
> (Slightly old cordova version, but the issue seems to be in the plugin)
>            Reporter: Ralf Kistner
>            Priority: Major
>
> `FileReader#readAsText` reads the file in chunks of 256KB. If the file 
> contains a multi-byte UTF-8 character that is split into two separate chunks, 
> reading fails with an encoding error (ENCODING_ERR: 5).
> For many apps this is not an issue. However, if I file is larger than 256KB 
> and contains many multi-byte characters, this is likely to happen.
> I have not experienced this issue on Android yet.
> Code that demonstrates the issue: 
> https://gist.github.com/anonymous/0fdc1ec212be1e29309820477257a0c3
> In the example, the reading will split the '\u0153' character into '...\x01' 
> and '\x53', which fails to decode in UTF-8.
> A workaround is to use readAsArrayBuffer instead, and do the decoding in 
> JavaScript. However, the decoding can be quite slow on iOS where a native 
> TextDecoder is not available.
> One solution would be to make the chunk sizes semi-flexible, to ensure that 
> it ends on a character boundary (make the chunk larger until decoding 
> succeeds).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to