0
Linux上でラテン文字列をswiftで英語にキャストしたいので、関数を書きましたが、いくつかのエラーがあるようです。 mac osではxcodeで動くことができますが、Linuxでは間違っています。 CFStringと文字列の変換には何か問題があると思います。 私はそれが何であるか分からない。誰か助けてくれますか?おかげLinuxでswiftを使ってCFStringとStringをキャストする方法
import Foundation
#if os(Linux)
import CoreFoundation
import Glibc
#endif
public extension String{
func transformToLatinStripDiacritics() -> String{
let nsStr = NSMutableString(string: self)
let str = unsafeBitCast(nsStr, to: CFMutableString.self)
if CFStringTransform(str, nil, kCFStringTransformToLatin, false){
if CFStringTransform(str, nil, kCFStringTransformStripDiacritics, false){
let s = String(describing: unsafeBitCast(str, to: NSMutableString.self) as NSString)
return s
}
return self
}
return self
}
}
ありがとうございます。それはうまく行くが、それは私のウェブサイトを文字化けさせるようだ。私はUTF16で文字化けしているかどうかはわかりません。あなたの意見は何ですか? – skyrealman
@skyrealmanあなたが見るように、Linux上のSwiftでは、特定の状況でただ一つの関数が期待通りに機能しません。すべてのコードが問題の原因になることがあります。テスト可能なコードが表示されていなければ、私はこれ以上言い表すことはできません。 – OOPer