回答編集履歴
2
訂正。
answer
CHANGED
@@ -10,4 +10,37 @@
|
|
10
10
|
```swift
|
11
11
|
"@abcdefg".addingPercentEncoding(withAllowedCharacters: .alphanumerics)
|
12
12
|
//=> %40abcdefg
|
13
|
-
```
|
13
|
+
```
|
14
|
+
|
15
|
+
# 訂正
|
16
|
+
|
17
|
+
メタ文字はメタ文字でも、NSLogのメタ文字でした。
|
18
|
+
|
19
|
+
```swift
|
20
|
+
var replace = base.replacingOccurrences(of: "@", with: "%40")
|
21
|
+
print("replace 1 :(replace)")
|
22
|
+
//=> replace 1 :https://line.me/R/ti/p/%40abcdefg
|
23
|
+
```
|
24
|
+
|
25
|
+
これで変換自体は正しくできています。
|
26
|
+
|
27
|
+
おかしかったのはNSLogの使い方で、
|
28
|
+
|
29
|
+
```swift
|
30
|
+
NSLog("replace 1 :(replace)") //これは
|
31
|
+
NSLog("replace 1 :https://line.me/R/ti/p/%40abcdefg") //これと同じ意味
|
32
|
+
```
|
33
|
+
|
34
|
+
なので、`%40a`という書式を指定していることになります。さらに引数の指定無し。
|
35
|
+
%aというのは浮動小数点の16進表記(?)だそうで、
|
36
|
+
`空白` + `0x0p+0` + `bcde` = ` 0x0p+0bcdefg`
|
37
|
+
という表示になってしまっていたのです。
|
38
|
+
|
39
|
+
正しくは、
|
40
|
+
|
41
|
+
```swift
|
42
|
+
NSLog("replace 1 :%@", replace)
|
43
|
+
//=> replace 1 :https://line.me/R/ti/p/%40abcdefg
|
44
|
+
```
|
45
|
+
|
46
|
+
となります。
|
1
.
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
//=> https://line.me/R/ti/p/%40abcdefg
|
6
6
|
```
|
7
7
|
|
8
|
-
URLエ
|
8
|
+
汎用的にURLエンコードしたいなら、
|
9
9
|
|
10
10
|
```swift
|
11
11
|
"@abcdefg".addingPercentEncoding(withAllowedCharacters: .alphanumerics)
|