diff --git a/R/add_footnote.R b/R/add_footnote.R
index feb1269..dd78ef5 100644
--- a/R/add_footnote.R
+++ b/R/add_footnote.R
@@ -101,7 +101,7 @@
     }
     label <- gsub("\\\\", "\\\\\\\\", label)
 
-    export <- enc2utf8(export)
+    export <- solve_enc(export)
     table_info <- magic_mirror(input)
     if (table_info$tabular == "longtable") {
       if (notation != "number") {
diff --git a/R/add_header_above.R b/R/add_header_above.R
index 59bae17..a0c37f3 100644
--- a/R/add_header_above.R
+++ b/R/add_header_above.R
@@ -150,7 +150,7 @@
   } else {
     new_header <- new_header_split[1]
   }
-  out <- str_replace(enc2utf8(as.character(kable_input)),
+  out <- str_replace(solve_enc(kable_input),
                      hline_type,
                      paste0(hline_type, "\n", new_header))
   out <- structure(out, format = "latex", class = "knitr_kable")
diff --git a/R/add_indent.R b/R/add_indent.R
index ff54ea1..de6fc32 100644
--- a/R/add_indent.R
+++ b/R/add_indent.R
@@ -31,7 +31,7 @@
 # Add indentation for LaTeX
 add_indent_latex <- function(kable_input, positions) {
   table_info <- magic_mirror(kable_input)
-  out <- enc2utf8(as.character(kable_input))
+  out <- solve_enc(kable_input)
 
   if (table_info$duplicated_rows) {
     dup_fx_out <- fix_duplicated_rows_latex(out, table_info)
diff --git a/R/collapse_rows.R b/R/collapse_rows.R
index 98a6ba2..8d42b71 100644
--- a/R/collapse_rows.R
+++ b/R/collapse_rows.R
@@ -117,7 +117,7 @@
                                 row_group_label_position, row_group_label_fonts,
                                 custom_latex_hline, headers_to_remove) {
   table_info <- magic_mirror(kable_input)
-  out <- enc2utf8(as.character(kable_input))
+  out <- solve_enc(kable_input)
 
   if (is.null(columns)) {
     columns <- seq(1, table_info$ncol)
diff --git a/R/column_spec.R b/R/column_spec.R
index bdd8b2b..21eb99c 100644
--- a/R/column_spec.R
+++ b/R/column_spec.R
@@ -178,7 +178,7 @@
   kable_align_new <- paste(table_info$align_vector, collapse = align_collapse)
 
   out <- sub(kable_align_old, kable_align_new,
-             enc2utf8(as.character(kable_input)),
+             solve_enc(kable_input),
              perl = T)
   out <- structure(out, format = "latex", class = "knitr_kable")
   if (!is.null(width)) {
diff --git a/R/footnote.R b/R/footnote.R
index 42b76a5..5c77e50 100644
--- a/R/footnote.R
+++ b/R/footnote.R
@@ -197,7 +197,7 @@
 footnote_latex <- function(kable_input, footnote_table, footnote_as_chunk,
                            threeparttable) {
   table_info <- magic_mirror(kable_input)
-  out <- enc2utf8(as.character(kable_input))
+  out <- solve_enc(kable_input)
 
   footnote_text <- latex_tfoot_maker(footnote_table, footnote_as_chunk,
                                      table_info$ncol, threeparttable)
diff --git a/R/group_rows.R b/R/group_rows.R
index f93a4d7..a6f74d0 100644
--- a/R/group_rows.R
+++ b/R/group_rows.R
@@ -145,7 +145,7 @@
                              bold = T, italic = F, hline_before = F ,hline_after = F,
                              extra_latex_after = NULL) {
   table_info <- magic_mirror(kable_input)
-  out <- enc2utf8(as.character(kable_input))
+  out <- solve_enc(kable_input)
 
   if (table_info$duplicated_rows) {
     dup_fx_out <- fix_duplicated_rows_latex(out, table_info)
diff --git a/R/kable_as_image.R b/R/kable_as_image.R
index 665f9d9..725452d 100644
--- a/R/kable_as_image.R
+++ b/R/kable_as_image.R
@@ -65,7 +65,7 @@
       "\\usepackage{xltxtra,xunicode}",
       latex_header_includes,
       "\\begin{document}",
-      enc2utf8(as.character(kable_input)),
+      solve_enc(kable_input),
       "\\end{document}"
     )
     temp_tex <- paste(temp_tex, collapse = "\n")
diff --git a/R/kable_styling.R b/R/kable_styling.R
index 5e4aff8..3d488fc 100644
--- a/R/kable_styling.R
+++ b/R/kable_styling.R
@@ -207,7 +207,8 @@
   repeat_header_method <- match.arg(repeat_header_method)
 
   out <- NULL
-  out <- enc2utf8(as.character(kable_input))
+  out <- solve_enc(kable_input)
+
   table_info <- magic_mirror(kable_input)
 
   if ("striped" %in% latex_options) {
diff --git a/R/landscape.R b/R/landscape.R
index d7b3cd1..b888131 100644
--- a/R/landscape.R
+++ b/R/landscape.R
@@ -30,7 +30,7 @@
   kable_attrs <- attributes(kable_input)
   out <- paste0(
     "\n\\begin{landscape}",
-    enc2utf8(as.character(kable_input)),
+    solve_enc(kable_input),
     "\n\\end{landscape}"
   )
 
diff --git a/R/row_spec.R b/R/row_spec.R
index e4f6df1..fcbd226 100644
--- a/R/row_spec.R
+++ b/R/row_spec.R
@@ -179,7 +179,7 @@
                            color, background, align, font_size, angle,
                            hline_after, extra_latex_after) {
   table_info <- magic_mirror(kable_input)
-  out <- enc2utf8(as.character(kable_input))
+  out <- solve_enc(kable_input)
 
   if (table_info$duplicated_rows) {
     dup_fx_out <- fix_duplicated_rows_latex(out, table_info)
diff --git a/R/util.R b/R/util.R
index 45f1df1..6d89d1f 100644
--- a/R/util.R
+++ b/R/util.R
@@ -133,5 +133,8 @@
   return(list(kable_input, table_info))
 }
 
-
+# Solve enc issue for LaTeX tables
+solve_enc <- function(x) {
+  enc2utf8(as.character(base::format(x, trim = TRUE, justify = 'none')))
+}
 
