2017-10-31 20 views
-1

私はLocationServicesフレームワークから来たロケーションの開始と移動先を持っています。Webサービスに渡される文字列がUnicodeエスケープを挿入します

アドレス行はSwift Stringです。ただし、パラメータとしてサービスに渡されるときは、\U2013が挿入されます。

例: 文字列が"100198 Commerce St"であれば、それは "100\U2013198 Commerce St"

\U2013ようなものだが挿入なっていると私はからの任意のアイデアを持っていません。

+1

ここでさらに詳しい情報が必要です。その "\ U2013"文字列があなたのコードのどこかにあるかどうかあなたのプロジェクトを検索しましたか? –

+0

はい。私はコード全体を検索しました。しかし、私はこれが私が理解することができないいくつかのユニコード文字の問題だと思います。 – Roshni

+1

\ U2013はDashのUnicode文字です - > http://www.charbase.com/2013-unicode-en-dash – Alladinian

答えて

0

アドレス行にはUnicode文字があり、サービスに渡すと、非Unicode(おそらくUTF-8)エンコードでエンコードされます。

これは幅広い話題ですが、一般的に文字列エンコードの対象を調べることをお勧めします。

2

Unicode文字列を8ビット文字列に変換しようとしています。必要な文字列を取得するには、この関数を試してください。

func convertString(string: String) -> String { 

    if let data = string.data(using: String.Encoding.ascii, allowLossyConversion: true) { 
     return String.init(data: data, encoding: .ascii)! 
    } 

    return "" 
} 
関連する問題