cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
What’s new: end-to-end encryption, Replay and Dash updates. Find out more about these updates, new features and more here.

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Re: docs contain invalid chars

docs contain invalid chars

bradoyler
New member | Level 2
Go to solution

using JS sdk method paperDocsDownload({ doc_id, export_format: 'html' }) and certain character (m-dash, curly quotes) come thru as â.

 

The test document is here: https://paper.dropbox.com/doc/test-paper-doc-S7sSIlM2E0g6p3OXhhts4 

 

Also the project I'm working on is here: https://github.com/bradoyler/paper2json

1 Accepted Solution

Accepted Solutions

Greg-DB
Dropbox Staff
Go to solution

Thanks!

 

I was able to reproduce the issue. It looks like it is a matter of encoding it properly. You can do so like this:

 

new Buffer(doc.fileBinary, 'binary').toString()

I'll ask the team to look into whether or not the SDK should/can do that for you though.

View solution in original post

9 Replies 9

Greg-DB
Dropbox Staff
Go to solution
Thanks! Can you share the rest of the problematic code though? Thanks in advance!

Greg-DB
Dropbox Staff
Go to solution
The 'paper2json' GitHub link you shared is a 404 for me. (Perhaps it's not publicly accessible?)

In any case, can you share just the code snippet(s) needed to reproduce the 'â' issue?

When I download the data to an html file using `URL.createObjectURL(response.fileBlob)` the resulting html file shows the correct characters.

Greg-DB
Dropbox Staff
Go to solution
The repo is available now, and it looks like you're running in node and not browser JavaScript like I was testing with. I'll try your code in node. Thanks!

bradoyler
New member | Level 2
Go to solution

bradoyler
New member | Level 2
Go to solution

interestingly, I dont see the malformed html when I use the http api via: 

curl -X POST https://api.dropboxapi.com/2/paper/docs/download \
    --header "Authorization: Bearer xxyyzzzzzz" \
    --header "Dropbox-API-Arg: {\"doc_id\": \"S7sSIlM2E0g6p3OXhhts4\",\"export_format\": \"html\"}"

Greg-DB
Dropbox Staff
Go to solution

Thanks!

 

I was able to reproduce the issue. It looks like it is a matter of encoding it properly. You can do so like this:

 

new Buffer(doc.fileBinary, 'binary').toString()

I'll ask the team to look into whether or not the SDK should/can do that for you though.

bradoyler
New member | Level 2
Go to solution

Doh! You're right.

Proper way to do this in Node 6+ is like this:

Buffer.from(doc.fileBinary, 'binary').toString()

But yea, I can't think of a reason why an SDK user would want different behavior from the HTTP API.

Thanks!

 

Greg-DB
Dropbox Staff
Go to solution
For reference, that is no longer necessary with the latest version of the SDK, v.3.x. You can just use fileBinary directly.

Greg-DB
Dropbox Staff
Go to solution
Unfortunately, this caused a different issue. Please upgrade to v4.0.0 and use the Buffer workaround again. Apologies for the bother.
Need more support?