mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-06 17:59:11 +00:00
🐞 fix: cmd error with gbk (#114)
* 🐞 fix: cmd error with gbk * 🎈 perf: try gbk only on windows
This commit is contained in:
@@ -225,6 +225,22 @@ pub fn init_logger(
|
||||
Ok(ret_sender)
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
pub fn utf8_or_gbk_to_string(s: &[u8]) -> String {
|
||||
use encoding::{all::GBK, DecoderTrap, Encoding};
|
||||
if let Ok(utf8_str) = String::from_utf8(s.to_vec()) {
|
||||
utf8_str
|
||||
} else {
|
||||
// 如果解码失败,则尝试使用GBK解码
|
||||
if let Ok(gbk_str) = GBK.decode(&s, DecoderTrap::Strict) {
|
||||
gbk_str
|
||||
} else {
|
||||
String::from_utf8_lossy(s).to_string()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::common::config::{self};
|
||||
|
||||
Reference in New Issue
Block a user