我有一个名为Folderć
的文件夹,其中包含smth.jpg。由于文件夹名称中有字母ć
,文件路径在数据库中保存为Folder%C0%01%/smth.jpg
。字母ć
保存为十六进制代码。在网站上预览图像时,这不是问题。
当我试图通过C#函数在Folderć
中创建子文件夹时,会出现问题。函数获取文件路径字符串,找到文件夹名称并在其中创建子文件夹。由于我的字符串中包含十六进制代码而不是字母ć
,函数无法找到该路径,因此无法创建子文件夹。
该字符串是UTF-8格式的,因此更改编码不会改变任何内容。有人知道问题在哪里以及如何解决它吗?
您可以使用Base64:对名称进行编码
public string ToBase64String(string text)
{
byte[] data = Encoding.UTF8.GetBytes(text);
return Convert.ToBase64String(data);
}
并在将字符串保存到DB之前使用它CCD_ 7。
从数据库接收字符串后,可以使用将其解码回正常字符串
public string FromBase64String(string base64)
{
byte[] data = Convert.FromBase64String(base64);
return Encoding.UTF8.GetString(data);
}
使用CCD_ 8。
这样,您就可以在数据库中自由地保存字符串。