[BUG]: trouble with cyrillic encoding in emayili::render
selesnow opened this issue · 0 comments
Description of the bug
I have Rmd file with cyrillic (russian language) text. When i try rending (emayili::render()
) and send it i get next:
My rending code:
library(emayili)
library(stringr)
library(rmarkdown)
Sys.setlocale(locale = 'russian')
rmarkdown::render(here::here('rmd', 'fb_spend_limit_checker.rmd'), encoding = 'CP1251')
email <- envelope() %>%
emayili::render(here::here('rmd', 'fb_spend_limit_checker.html')) %>%
from("Netpeak Analytics Dept. <bi@netpeak.net>") %>%
to(c("a.seleznev@netpeak.group")) %>% #, "d.skliar@netpeak.net")) %>%
subject("Дайджест: Контроль лимита расходов в Facebook аккаунтах за {{format(Sys.Date(), '%d.%m.%Y')}}", interpolate = T)
# send mail
smtp <- gmail(Sys.getenv('DEPT_EMAIL'), Sys.getenv('DEPT_EMAIL_PWD'))
smtp(email)
But i can fix it over iconv:
library(emayili)
library(stringr)
library(rmarkdown)
Sys.setlocale(locale = 'russian')
rmarkdown::render(here::here('rmd', 'fb_spend_limit_checker.rmd'), encoding = 'CP1251')
email <- envelope() %>%
emayili::render(here::here('rmd', 'fb_spend_limit_checker.html')) %>%
from("Netpeak Analytics Dept. <bi@netpeak.net>") %>%
to(c("a.seleznev@netpeak.group")) %>% #, "d.skliar@netpeak.net")) %>%
subject("Дайджест: Контроль лимита расходов в Facebook аккаунтах за {{format(Sys.Date(), '%d.%m.%Y')}}", interpolate = T)
# -------------------------------------------------------------------------->
# -------------------------------------------------------------------------->
# fix encoding
email$parts[[1]]$content <- iconv(email$parts[[1]]$content, from = 'UTF-8', to = '1251') %>% iconv(from = 'UTF-8', to = '1251')
# ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------
# send mail
smtp <- gmail(Sys.getenv('DEPT_EMAIL'), Sys.getenv('DEPT_EMAIL_PWD'))
smtp(email)
My session info
> sessionInfo()
R version 4.2.1 (2022-06-23 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows Server x64 (build 14393)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=Russian_Russia.1251 LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] rmarkdown_2.16 stringr_1.4.1 emayili_0.7.13
loaded via a namespace (and not attached):
[1] Rcpp_1.0.9 pillar_1.8.1 compiler_4.2.1 base64enc_0.1-3 tools_4.2.1 digest_0.6.29 evaluate_0.16 lifecycle_1.0.2 tibble_3.1.8
[10] pkgconfig_2.0.3 rlang_1.0.5 cli_3.4.0 DBI_1.1.3 rstudioapi_0.14 commonmark_1.8.0 curl_4.3.2 xfun_0.32 fastmap_1.1.0
[19] dplyr_1.0.10 httr_1.4.4 knitr_1.40 xml2_1.3.3 generics_0.1.3 vctrs_0.4.1 triebeard_0.3.0 rprojroot_2.0.3 tidyselect_1.1.2
[28] glue_1.6.2 here_1.0.1 R6_2.5.1 fansi_1.0.3 purrr_0.3.4 tidyr_1.2.1 logger_0.2.2 magrittr_2.0.3 urltools_1.7.3
[37] htmltools_0.5.3 assertthat_0.2.1 rvest_1.0.3 mime_0.12 utf8_1.2.2 stringi_1.7.8
Steps To Reproduce
Part of Rmd filr
---
title: "Дайджест контроля лимита трат в Facebook"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Дайджест контроля лимита трат в Facebook}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
Этот дайджест позволяет контролировать установленные лимиты затрат в рекламных аккаунтах Facebook, по проуктам услуги "Пополнение Facebook".
library(kableExtra)
library(tidyr)
df <- data.frame('колонка 1' = c(1,2,3), 'колонка 2' = c(4,5,6))
kbl(df)
Rending code
library(emayili)
library(stringr)
library(rmarkdown)
Sys.setlocale(locale = 'russian')
rmarkdown::render(here::here('rmd', 'fb_spend_limit_checker.rmd'), encoding = 'CP1251')
email <- envelope() %>%
emayili::render(here::here('rmd', 'fb_spend_limit_checker.html')) %>%
from("Netpeak Analytics Dept. bi@netpeak.net") %>%
to(c("a.seleznev@netpeak.group")) %>% #, "d.skliar@netpeak.net")) %>%
subject("Дайджест: Контроль лимита расходов в Facebook аккаунтах за {{format(Sys.Date(), '%d.%m.%Y')}}", interpolate = T)
send mail
smtp <- gmail(Sys.getenv('DEPT_EMAIL'), Sys.getenv('DEPT_EMAIL_PWD'))
smtp(email)
### Additional Information
> sessionInfo()
R version 4.2.1 (2022-06-23 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows Server x64 (build 14393)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=Russian_Russia.1251 LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] rmarkdown_2.16 stringr_1.4.1 emayili_0.7.13
loaded via a namespace (and not attached):
[1] Rcpp_1.0.9 pillar_1.8.1 compiler_4.2.1 base64enc_0.1-3 tools_4.2.1 digest_0.6.29 evaluate_0.16 lifecycle_1.0.2 tibble_3.1.8
[10] pkgconfig_2.0.3 rlang_1.0.5 cli_3.4.0 DBI_1.1.3 rstudioapi_0.14 commonmark_1.8.0 curl_4.3.2 xfun_0.32 fastmap_1.1.0
[19] dplyr_1.0.10 httr_1.4.4 knitr_1.40 xml2_1.3.3 generics_0.1.3 vctrs_0.4.1 triebeard_0.3.0 rprojroot_2.0.3 tidyselect_1.1.2
[28] glue_1.6.2 here_1.0.1 R6_2.5.1 fansi_1.0.3 purrr_0.3.4 tidyr_1.2.1 logger_0.2.2 magrittr_2.0.3 urltools_1.7.3
[37] htmltools_0.5.3 assertthat_0.2.1 rvest_1.0.3 mime_0.12 utf8_1.2.2 stringi_1.7.8