Comments have pointed out that this is not an encoding issue. The div's text content is written in a specific table markup language that is processed by javascript.
To decode this, you can begin by breaking down each match separated by a tilde (~) and the data fields separated by the "¬" character. Each field follows a key-value pair structure split by a "÷".
Transforming this into a data frame is challenging due to the non-rectangular data. Converting it to JSON format would be a simpler approach.
Below is an example showcasing how to extract specific fields of interest:
"https://www.flashscore.com/tennis/atp-singles/australian-open-2020/results/" %>%
xml2::read_html() %>%
rvest::html_node("#tournament-page-data-results") %>
rvest::html_text() %>% strsplit("[~]") %>% unlist() %>% strsplit("\u00ac") %>
lapply(function(x) gsub("^.*\u00f7", "", x)) %>%
lapply(function(x){
y <- as.numeric(grep("\\d{10}", x, value = TRUE))
y <- as.difftime(y, units = "secs") + as.POSIXct("1970-01-01 00:00:00")
x[grep("\\d{10}", x)] <- as.character(y)
return(x)}) %>%
lapply(`[`, -(1:2)) %>%
lapply(function(x) x[!grepl("^[[:alnum:]]{8}$", x)]) %>
lapply(function(x) grep("[a-z ]", x, value = TRUE)[-c(2,4,6,8)]) %>
`[`(-(1:2)) %>
{do.call(rbind, .)} %>
as.data.frame(stringsAsFactors = FALSE) %>
`names<-`(c("Date", "Stage", "Player1", "Player2")) %>
tibble::as.tibble()
#> # A tibble: 127 x 4
#> Date Stage Player1 Player2
#> <chr> <chr> <chr> <chr>
#> 1 2020-02-02 07:45:00 Final Djokovic N. (Srb) Thiem D. (Aut)
#> 2 2020-01-31 07:45:00 Semi-finals Thiem D. (Aut) Zverev A. (Ger)
#> 3 2020-01-30 07:45:00 Semi-finals Federer R. (Sui) Djokovic N. (Srb)
#> 4 2020-01-29 07:45:00 Quarter-finals Thiem D. (Aut) Nadal R. (Esp)
#> 5 2020-01-29 02:45:00 Quarter-finals Wawrinka S. (Sui) Zverev A. (Ger)
#> 6 2020-01-28 07:50:00 Quarter-finals Raonic M. (Can) Djokovic N. (Srb)
#> 7 2020-01-28 03:15:00 Quarter-finals Sandgren T. (Usa) Federer R. (Sui)
#> 8 2020-01-27 08:05:00 1/8-finals Rublev A. (Rus) Zverev A. (Ger)
#> 9 2020-01-27 07:15:00 1/8-finals Nadal R. (Esp) Kyrgios N. (Aus)
#> 10 2020-01-27 03:15:00 1/8-finals Medvedev D. (Rus) Wawrinka S. (Sui)
#> # ... with 117 more rows