修改导致epub生成错误的格式问题

This commit is contained in:
floydzhang1984
2015-10-16 17:34:52 +08:00
parent eb46d7d779
commit 1491a24935
8 changed files with 152 additions and 146 deletions

View File

@ -113,14 +113,14 @@ Swift 默认字符串拷贝的方式保证了在函数/方法中传递的是字
您可通过`for-in`循环来遍历字符串中的`characters`属性来获取每一个字符的值:
```swift
for character in "Dog!🐶".characters {
for character in "Dog!<EFBFBD>".characters {
print(character)
}
// D
// o
// g
// !
// 🐶
// <EFBFBD>
```
`for-in`循环在 [For Loops](./05_Control_Flow.html#for_loops) 中进行了详细描述。
@ -133,10 +133,10 @@ let exclamationMark: Character = "!"
字符串可以通过传递一个值类型为`Character`的数组作为自变量来初始化:
```swift
let catCharacters: [Character] = ["C", "a", "t", "!", "🐱"]
let catCharacters: [Character] = ["C", "a", "t", "!", "<EFBFBD>"]
let catString = String(catCharacters)
print(catString)
// 打印输出:"Cat!🐱"
// 打印输出:"Cat!<EFBFBD>"
```
<a name="concatenating_strings_and_characters"></a>
@ -205,7 +205,7 @@ Swift 的`String`和`Character`类型是完全兼容 Unicode 标准的。
### Unicode 标量Unicode Scalars
Swift 的`String`类型是基于 *Unicode 标量* 建立的。
Unicode 标量是对应字符或者修饰符的唯一的21位数字例如`U+0061`表示小写的拉丁字母(`LATIN SMALL LETTER A`)("`a`")`U+1F425`表示小鸡表情(`FRONT-FACING BABY CHICK`) ("`🐥`")。
Unicode 标量是对应字符或者修饰符的唯一的21位数字例如`U+0061`表示小写的拉丁字母(`LATIN SMALL LETTER A`)("`a`")`U+1F425`表示小鸡表情(`FRONT-FACING BABY CHICK`) ("`<EFBFBD>`")。
> 注意:
> Unicode *码位(code poing)* 的范围是`U+0000`到`U+D7FF`或者`U+E000`到`U+10FFFF`。Unicode 标量不包括 Unicode *代理项(surrogate pair)* 码位,其码位范围是`U+D800`到`U+DFFF`。
@ -229,7 +229,7 @@ let wiseWords = "\"Imagination is more important than knowledge\" - Einstein"
// "Imageination is more important than knowledge" - Enistein
let dollarSign = "\u{24}" // $, Unicode 标量 U+0024
let blackHeart = "\u{2665}" // ♥, Unicode 标量 U+2665
let sparklingHeart = "\u{1F496}" // 💖, Unicode 标量 U+1F496
let sparklingHeart = "\u{1F496}" // <EFBFBD>, Unicode 标量 U+1F496
```
<a name="extended_grapheme_clusters"></a>
@ -272,7 +272,7 @@ let enclosedEAcute: Character = "\u{E9}\u{20DD}"
```swift
let regionalIndicatorForUS: Character = "\u{1F1FA}\u{1F1F8}"
// regionalIndicatorForUS 是 🇺🇸
// regionalIndicatorForUS 是 <EFBFBD><EFBFBD>
```
<a name="counting_characters"></a>
@ -281,7 +281,7 @@ let regionalIndicatorForUS: Character = "\u{1F1FA}\u{1F1F8}"
如果想要获得一个字符串中`Character`值的数量,可以使用字符串的`characters`属性的`count`属性:
```swift
let unusualMenagerie = "Koala 🐨, Snail 🐌, Penguin 🐧, Dromedary 🐪"
let unusualMenagerie = "Koala <EFBFBD>, Snail <EFBFBD>, Penguin <EFBFBD>, Dromedary <EFBFBD>"
print("unusualMenagerie has \(unusualMenagerie.characters.count) characters")
// 打印输出 "unusualMenagerie has 40 characters"
```
@ -512,10 +512,10 @@ Swift 提供了几种不同的方式来访问字符串的 Unicode 表示形式
* UTF-16 代码单元集合 (利用字符串的`utf16`属性进行访问)
* 21位的 Unicode 标量值集合,也就是字符串的 UTF-32 编码格式 (利用字符串的`unicodeScalars`属性进行访问)
下面由`D``o``g``‼`(`DOUBLE EXCLAMATION MARK`, Unicode 标量 `U+203C`)和`🐶`(`DOG FACE`Unicode 标量为`U+1F436`)组成的字符串中的每一个字符代表着一种不同的表示:
下面由`D``o``g``‼`(`DOUBLE EXCLAMATION MARK`, Unicode 标量 `U+203C`)和`<EFBFBD>`(`DOG FACE`Unicode 标量为`U+1F436`)组成的字符串中的每一个字符代表着一种不同的表示:
```swift
let dogString = "Dog‼🐶"
let dogString = "Dog‼<EFBFBD>"
```
@ -526,16 +526,16 @@ let dogString = "Dog‼🐶"
其为`String.UTF8View`类型的属性,`UTF8View`是无符号8位 (`UInt8`) 值的集合,每一个`UInt8`值都是一个字符的 UTF-8 表示:
<table style='text-align:center'>
<tr height=77>
<tr height="77">
<td>Character</td>
<td>D<br>U+0044</td>
<td>o<br>U+006F</td>
<td>g<br>U+0067</td>
<td colspan=3><br>U+203C</td>
<td colspan=4>🐶<br>U+1F436</td>
<td colspan="3"><br>U+203C</td>
<td colspan="4"><EFBFBD><br>U+1F436</td>
</tr>
<tr height=77>
<td height=77>UTF-8<br>Code Unit</td>
<tr height="77">
<td height="77">UTF-8<br>Code Unit</td>
<td>68</td>
<td>111</td>
<td>103</td>
@ -548,7 +548,7 @@ let dogString = "Dog‼🐶"
<td>182</td>
</tr>
<tr>
<td height=77>Position</td>
<td height="77">Position</td>
<td>0</td>
<td>1</td>
<td>2</td>
@ -583,16 +583,16 @@ print("")
其为`String.UTF16View`类型的属性,`UTF16View`是无符号16位 (`UInt16`) 值的集合,每一个`UInt16`都是一个字符的 UTF-16 表示:
<table style='text-align:center'>
<tr height=77>
<tr height="77">
<td>Character</td>
<td>D<br>U+0044</td>
<td>o<br>U+006F</td>
<td>g<br>U+0067</td>
<td><br>U+203C</td>
<td colspan=2>🐶<br>U+1F436</td>
<td colspan="2"><EFBFBD><br>U+1F436</td>
</tr>
<tr height=77>
<td height=77>UTF-16<br>Code Unit</td>
<tr height="77">
<td height="77">UTF-16<br>Code Unit</td>
<td>68</td>
<td>111</td>
<td>103</td>
@ -601,7 +601,7 @@ print("")
<td>56374</td>
</tr>
<tr>
<td height=77>Position</td>
<td height="77">Position</td>
<td>0</td>
<td>1</td>
<td>2</td>
@ -638,16 +638,16 @@ print("")
<table style='text-align:center'>
<tr height=77>
<tr height="77">
<td>Character</td>
<td>D<br>U+0044</td>
<td>o<br>U+006F</td>
<td>g<br>U+0067</td>
<td><br>U+203C</td>
<td>🐶<br>U+1F436</td>
<td><EFBFBD><br>U+1F436</td>
</tr>
<tr height=77>
<td height=77>UTF-16<br>Code Unit</td>
<tr height="77">
<td height="77">UTF-16<br>Code Unit</td>
<td>68</td>
<td>111</td>
<td>103</td>
@ -655,7 +655,7 @@ print("")
<td>128054</td>
</tr>
<tr>
<td height=77>Position</td>
<td height="77">Position</td>
<td>0</td>
<td>1</td>
<td>2</td>
@ -688,5 +688,5 @@ for scalar in dogString.unicodeScalars {
// o
// g
// ‼
// 🐶
// <EFBFBD>
```

View File

@ -228,6 +228,7 @@ let fromTheTop = stackOfStrings.pop()
```
下图展示了如何从栈中pop一个值的过程
![此处输入图片的描述](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Art/stackPoppedOneString_2x.png)
<a name="extending_a_generic_type"></a>