使用c++创建文件时,在Mac中文件名中使用%字符
% chars in file names in Mac when creating files using C++
我在Mac OS X中使用c++创建文件名为特殊字符的文件时遇到了一些问题。
这是我的App Print:
文件名通过套接字从另一个可执行文件接收。(最烦人的事情是我没有能够在终端打印文件名。它只显示了问号。但是当我将文件名写入另一个文件的内容时,它会显示确切的字符。)
My App Print:
######
File Name before decoding : /Users/zeus/workspace/Unicodes/files/%D4%D3%C2%F3_1.txt
File Name after decoding : /Users/zeus/workspace/Unicodes/files/????_1.txt
File Opened and Written #####
应用程序完成后,当我检查文件时,它在文件名中显示%字符。这怎么可能?
我猜您需要将字符串编码为有效的UTF-8。0xD4
不是一个有效的UTF-8字符。相反,Ô
的正确UTF-8编码是0xC3 0x94
(它占用两个字节)。因为没有看到实际的代码,所以不可能确定,但这是我的直觉。一个更可靠的答案需要实际的代码。
看起来您的URL正在使用Latin-1 (ISO/IEC 8859-1)字符集编码转义字符。这个问题讨论了如何从ISO 8859-1转换到UTF-8。Wikipedia有一篇关于如何编码UTF-8的好文章
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- VSCode C++调试文件名中包含中文字符的文件时插件损坏
- Qt:文件名中的非 ASCII 字符替换为"?"
- 字符编码和带有C++的文件名
- 重命名两个目录中的文件名,如果它们之间的某些字符匹配 - 矢量下标超出范围
- C :如何询问文件名并打印字符数组
- 文件名如何在"char"和2字节字符之间工作
- 使用 libcurl 上传带有特殊字符的文件名
- 在库的文件名中使用加号字符 ('+') 不好吗?
- 清除字符 (?) 以在C++中创建多个文件名
- 在结构中,文件名可以包含非标准字符
- #include 指令中文件名的有效字符
- 使用字符数组作为文件名
- 当文件名包含宽字符时使用ifstream
- 从字符数组解析文件名
- 内容处理文件名中的特殊字符
- 使用中文字符时文件名错误
- 为什么 std::getline 会覆盖包含文件名的字符数组
- 使用c++创建文件时,在Mac中文件名中使用%字符