node-bplist-creator
node-bplist-creator copied to clipboard
é is converted to é
é is converted to é (String), if you open the binary plist file in Xcode (or on an iOS device).
When I change the Type to Data it is listed as <c383c2a9>.
Logging entry and utf8 values in bplistCreator.js on line 226, gives: entry { type: 'string', value: 'é', id: 2 } utf8 <Buffer c3 a9>
According to http://utf8-chartable.de/ the UTF-8 code for é is c3 a9, which make up the first and last two characters of <c383c2a9>. The code in between 83 c2 makes two characters:
c383: Ã and c2a9: ©.
| Input | String | Data |
|---|---|---|
| é | é | < c3 83 c2 a9 > |
| ê | ê | < c3 83 c2 aa > |
| ë | ë | < c3 83 c2 ab > |
| è | è | < c3 83 c2 a8 > |
It looks like somewhere UTF-8 text is being decoded as ISO-8859-1 or a similar text encoding.
There doesn't seem to be an issue here:
const fs = require('fs');
const bplist = require('bplist-creator');
const plist = bplist({test: "é"});
fs.writeFileSync('test.plist', plist);
$ plutil -convert xml1 test.plist
$ cat test.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>test</key>
<string>é</string>
</dict>
</plist>