avacadorow
avacadorow

Reputation: 21

Write.csv in Japanese from R to excel

When I use write.csv for my Japanese text, I get gibberish in Excel (which normally handles Japanese fine). I've searched this site for solutions, but am coming up empty-handed. Is there an encoding command to add to write.csv to enable Excel to import the Japanese properly from R? Any help appreciated! Thanks!

Upvotes: 2

Views: 566

Answers (3)

Brian Francis
Brian Francis

Reputation: 1

I ran into the same problem as tchevrier. Japanese text were not display correctly both in Excel and a text editor when exporting with write.csv. I found using:

readr::write_excel_csv(df, "filename.csv")

corrected the issue.

Upvotes: 0

tchevrier
tchevrier

Reputation: 1171

I just ran into this exact same problem - I used what I saw online:

write.csv(merch_df, file = "merch.reduced.csv", fileEncoding = "UTF-8")

and indeed, when opening my .xls file, <U+30BB><U+30D6><U+30F3>, etc.... Odd and disappointing.

A little Google and I found this awesome blog post by Kevin Ushey which explains it all... https://kevinushey.github.io/blog/2018/02/21/string-encoding-and-r/

Using the function he proposes:

write_utf8 <- function(text, f = tempfile()) {

# step 1: ensure our text is utf8 encoded
utf8 <- enc2utf8(text)

# step 2: create a connection with 'native' encoding
# this signals to R that translation before writing
# to the connection should be skipped
con <- file(f, open = "w+", encoding = "native.enc")

# step 3: write to the connection with 'useBytes = TRUE',
# telling R to skip translation to the native encoding
writeLines(utf8, con = con, useBytes = TRUE)

# close our connection
close(con)

# read back from the file just to confirm
# everything looks as expected
readLines(f, encoding = "UTF-8")

}

works magic. Thank you Kevin!

Upvotes: 1

Mark R
Mark R

Reputation: 1009

As a work around -- and diagnostic -- have you tried saving as .txt and then both opening the file in Excel and also pasting the data into Excel from a text editor?

Upvotes: 0

Related Questions