例如,我试图用英语将阿拉伯文字与英语相结合:
let pdfName = "\(name)_copy_1234.pdf"
名称类似于:وصغار
1234是我的随机数
但是在文档文件夹中,它的保存方式如下: copy_35679_وصغا。pdf
答案 0 :(得分:1)
这不是特定于Swift的问题,因为它已纳入Unicode标准,并且与Unicode支持双向脚本( eg 拉丁和从右至左脚本)的方式有关例如阿拉伯语)。考虑在此处Unicode Controls for Bidirectional Text处查看详细的解释,以更好地理解方向改写字符的工作原理。
CodeBlender的答案为您提供了一个很好的示例-但是,在保存包含扩展字符集的文件名时要格外小心,例如在保存到旧版操作系统或在计算机之间传输时,您可能会遇到问题。>
答案 1 :(得分:0)
您需要正确地转义pdfName
字符串的开头和结尾,如下所示:
let name = "وصغار"
let pdfName = "\u{202A}\(name)_copy_1234.pdf\u{202C}"
print(pdfName)
// English وصغار_copy_1234.pdf
// Arabic وصغار_copy_1234.pdf
Apple讨论了it here,但是代码是针对Objective-C的,因此它没有显示如何使用{}将Swift正确地封装起来。