diff --git a/src/audio/player.rs b/src/audio/player.rs index 7074f6c79266ae53fa05bda7a41d0b4aa23c46ec..b4c9a6edd934c539a969a3ec5104ba1c5e0d1cc3 100644 --- a/src/audio/player.rs +++ b/src/audio/player.rs @@ -389,9 +389,11 @@ impl SongTitle { // Remove unsupported characters from the file name let title_raw = utils::simplify_string(title.to_string()); // Limit file name to 200 chars - let title_vec = title_raw.chars().collect::>(); - let cut_to_length = title_vec.len().min(200); - let title = title_vec[..cut_to_length].iter().cloned().collect::(); + let mut limit = 200; + while (title_raw.len() > 200) && (!title_raw.is_char_boundary(limit)) { + limit -= 1; + } + let title = &title_raw[..limit.min(title_raw.len())]; let mut path = path::CACHE.clone(); path.push("recording");