c# - 如何修复字符串中的特殊土耳其字符?
问题描述
我有一个从 url 中提取的字符串作为包含特殊土耳其字符 (çğıİöüş) 的文件名,它们似乎是错误的。我该如何解决?
public static string getFileName(HttpWebResponse response, string url)
{
var cd = response.Headers["content-disposition"];
var loc = response.Headers["location"];
if (!string.IsNullOrEmpty(cd))
{
var disp = ContentDispositionHeaderValue.Parse(cd);
return Uri.UnescapeDataString(disp.FileName);
}
else if (!string.IsNullOrEmpty(loc))
return Path.GetFileName(loc);
else
return Path.GetFileName(url);
}
原始字符串:
y2mate.com - Cengiz Özkan - Suzan Suzi (Kırklar Dağının Düzü)_VaW6Mhde9Ko.mp3
正确的字符串:
y2mate.com - Cengiz Özkan - Suzan Suzi (Kırklar Dağının Düzü)_VaW6Mhde9Ko.mp3
解决方案
您似乎混合了 Win-1254和Utf-8编码:
string original =
@"y2mate.com - Cengiz Özkan - Suzan Suzi (Kırklar Dağının Düzü)_VaW6Mhde9Ko.mp3";
string correct = Encoding.UTF8.GetString(Encoding.GetEncoding(1254).GetBytes(original));
// Let's have a look
Console.Write(correct);
结果:
y2mate.com - Cengiz Özkan - Suzan Suzi (Kırklar Dağının Düzü)_VaW6Mhde9Ko.mp3
推荐阅读
- java - 用于将新创建的对象传递给方法的字节好友代码
- list - 使用 TCL 将列表中的非科学值转换为科学值
- actions-on-google - onQuery 的多个特征
- javascript - 使用js在html中创建拖放
- python-3.x - 使用pip安装pyqt5时如何解决元数据轮错误
- firebase - 有没有办法在 Flutter 应用程序中缓存音频文件 From Firebase
- python - 使用谷歌翻译 API 翻译数据框时出错
- reactjs - 用 axios 反应 useEffect 钩子无法读取未定义的属性
- python - 在列表中合并元组 - Spacy Trainset 相关
- mysql - 如何在 Hive 或 Spark 中的 GROUP BY 之后将 INNER JOIN 函数聚合到每个组