UTF-8:修訂版本之間的差異
出自福留子孫
(→等價) |
|||
(未顯示同用戶所作出之26次版本) | |||
第 1 行: | 第 1 行: | ||
− | [[ | + | [[分類:標準]] |
− | ' | + | ==特殊字元== |
+ | ===有 HTML 或 URL 意涵的字元=== | ||
+ | <table class=nicetable> | ||
+ | <tr><th>字元</th><th>實體名稱</th><th>字元編碼</th></tr> | ||
+ | <tr><td>不換行空格</td><td><code>&nbsp;</code></td><td><code>&#160;</code></td></tr> | ||
+ | <tr><td><</td><td><code>&lt;</code></td><td><code>&#60;</code></td></tr> | ||
+ | <tr><td>></td><td><code>&gt;</code></td><td><code>&#62;</code></td></tr> | ||
+ | <tr><td>"</td><td><code>&quot;</code></td><td><code>&#34;</code></td></tr> | ||
+ | <tr><td>'</td><td><code>&apos;</code></td><td><code>&#39;</code></td></tr> | ||
+ | <tr><td>&</td><td><code>&amp;</code></td><td><code>&#38;</code></td></tr> | ||
+ | </table> | ||
+ | |||
+ | ==碼位與字元== | ||
+ | ===UTF-8編碼位元組含義:=== | ||
*◽◾◾◾◾◾◾◾,對於UTF-8編碼中的任意位元組B,如果B的第一位為0,則B獨立的表示一個字元(ASCII碼); | *◽◾◾◾◾◾◾◾,對於UTF-8編碼中的任意位元組B,如果B的第一位為0,則B獨立的表示一個字元(ASCII碼); | ||
− | *◾◽?????? | + | *◾◽??????,128~191,如果B的第一位為1,第二位為0,則B為一個多位元組字元中的一個位元組(非ASCII字元); |
− | *◾◾◽????? | + | :識別位元固定為 128 ,表值 0~63。 |
− | *◾◾◾◽???? | + | *◾◾◽?????,192~223,如果B的前兩位為1,第三位為0,則B為兩個位元組表示的字元中的第一個位元組; |
− | *◾◾◾◾◽??? | + | :識別位元固定為 192 ,(0~31)×64。 |
+ | *◾◾◾◽????,224~239,如果B的前三位為1,第四位為0,則B為三個位元組表示的字元中的第一個位元組; | ||
+ | *◾◾◾◾◽???,240~247,如果B的前四位為1,第五位為0,則B為四個位元組表示的字元中的第一個位元組; | ||
+ | '''組成字'''(以「瓦」的中文 3 byte 為例): | ||
+ | #第一 byte 231, 231-224=7 ,單位 4096 | ||
+ | #第二 byte 147, 147-128=19 ,單位 64 | ||
+ | #第三 byte 166, 166-128=38 ,單位 1 | ||
+ | :字碼 = 7×4096+19×64+38=29926 ,字碼寫成 &#29926; | ||
+ | |||
+ | ===顯示編碼位的方法:=== | ||
+ | 以 PHP 為例。 | ||
+ | ====(一)由整數碼位生成對應的字符==== | ||
+ | #chr(整數碼位):產生單 byte 字元,如 ASCII、ISO-8859 或 Windows 1252。整數由 0~255 。無法通過傳遞一個 Unicode 碼位值來產生多位元組編碼 (像是 UTF-8 或 UTF-16) 字串。超過有效範圍 (0~255) 的值將用以下演算法處理:<pre> while($bytevalue < 0){$bytevalue += 256;} $bytevalue %= 256;</pre>運用多個chr(…)連接可以得到多 byte UTF-8 字符,如「echo chr(240).chr(159).chr(144).chr(152);」會得到「🐘」。<br/>碼位寬度有幾 byte 和顯示字型有多寬無關。 | ||
+ | #mb_chr(整數碼位,'UTF-8'):在啟用了 mbstring 擴展的前提下,可以使用。即使是控制碼也生成。 | ||
+ | # &#整數碼位;: | ||
+ | #html_entity_decode('&#整數碼位;', ENT_NOQUOTES, 'UTF-8') | ||
+ | |||
+ | ====(二)找出字符的碼位==== | ||
+ | #ord(字串):轉換字串第一個位元組為某個碼位 (0~255 之間的值) | ||
+ | #mb_ord(字串, '編碼'):獲取字串的第一個字元在某一種 Unicode 編碼中的碼位值。編碼可以是 UTF-8、ISO-8859-1、Windows-1252。 | ||
+ | #htmlentities(字串[,flags,'字符集',是否轉換]):將字串中的特殊字元轉換為 HTML 轉義字元(&#…;) | ||
+ | |||
+ | ===1 位元組編碼:=== | ||
+ | ====0~31 控制字元==== | ||
+ | <table class='nicetable'> | ||
+ | <tr> | ||
+ | <th>DEC</th> | ||
+ | <th>OCT</th> | ||
+ | <th>HEX</th> | ||
+ | <th>BIN</th> | ||
+ | <th>Symbol</th> | ||
+ | <th>HTML Number</th> | ||
+ | <th>HTML Name</th> | ||
+ | <th>Description</th> | ||
+ | </tr> | ||
+ | <tr><td>0</td><td>000</td><td>00</td><td>00000000</td><td>NUL</td><td>&#00;</td><td> </td><td>Null character</td></tr> | ||
+ | <tr><td>1</td><td>001</td><td>01</td><td>00000001</td><td>SOH</td><td>&#01;</td><td> </td><td>Start of Heading</td></tr> | ||
+ | <tr><td>2</td><td>002</td><td>02</td><td>00000010</td><td>STX</td><td>&#02;</td><td> </td><td>Start of Text</td></tr> | ||
+ | <tr><td>3</td><td>003</td><td>03</td><td>00000011</td><td>ETX</td><td>&#03;</td><td> </td><td>End of Text</td></tr> | ||
+ | <tr><td>4</td><td>004</td><td>04</td><td>00000100</td><td>EOT</td><td>&#04;</td><td> </td><td>End of Transmission</td></tr> | ||
+ | <tr><td>5</td><td>005</td><td>05</td><td>00000101</td><td>ENQ</td><td>&#05;</td><td> </td><td>Enquiry</td></tr> | ||
+ | <tr><td>6</td><td>006</td><td>06</td><td>00000110</td><td>ACK</td><td>&#06;</td><td> </td><td>Acknowledge</td></tr> | ||
+ | <tr><td>7</td><td>007</td><td>07</td><td>00000111</td><td>BEL</td><td>&#07;</td><td> </td><td>Bell, Alert</td></tr> | ||
+ | <tr><td>8</td><td>010</td><td>08</td><td>00001000</td><td>BS</td><td>&#08;</td><td> </td><td>Backspace</td></tr> | ||
+ | <tr><td>9</td><td>011</td><td>09</td><td>00001001</td><td>HT</td><td>&#09;</td><td> </td><td>Horizontal Tab</td></tr> | ||
+ | <tr><td>10</td><td>012</td><td>0A</td><td>00001010</td><td>LF</td><td>&#10;</td><td> </td><td>Line Feed</td></tr> | ||
+ | <tr><td>11</td><td>013</td><td>0B</td><td>00001011</td><td>VT</td><td>&#11;</td><td> </td><td>Vertical Tabulation</td></tr> | ||
+ | <tr><td>12</td><td>014</td><td>0C</td><td>00001100</td><td>FF</td><td>&#12;</td><td> </td><td>Form Feed</td></tr> | ||
+ | <tr><td>13</td><td>015</td><td>0D</td><td>00001101</td><td>CR</td><td>&#13;</td><td> </td><td>Carriage Return</td></tr> | ||
+ | <tr><td>14</td><td>016</td><td>0E</td><td>00001110</td><td>SO</td><td>&#14;</td><td> </td><td>Shift Out</td></tr> | ||
+ | <tr><td>15</td><td>017</td><td>0F</td><td>00001111</td><td>SI</td><td>&#15;</td><td> </td><td>Shift In</td></tr> | ||
+ | <tr><td>16</td><td>020</td><td>10</td><td>00010000</td><td>DLE</td><td>&#16;</td><td> </td><td>Data Link Escape</td></tr> | ||
+ | <tr><td>17</td><td>021</td><td>11</td><td>00010001</td><td>DC1</td><td>&#17;</td><td> </td><td>Device Control One (XON)</td></tr> | ||
+ | <tr><td>18</td><td>022</td><td>12</td><td>00010010</td><td>DC2</td><td>&#18;</td><td> </td><td>Device Control Two</td></tr> | ||
+ | <tr><td>19</td><td>023</td><td>13</td><td>00010011</td><td>DC3</td><td>&#19;</td><td> </td><td>Device Control Three (XOFF)</td></tr> | ||
+ | <tr><td>20</td><td>024</td><td>14</td><td>00010100</td><td>DC4</td><td>&#20;</td><td> </td><td>Device Control Four</td></tr> | ||
+ | <tr><td>21</td><td>025</td><td>15</td><td>00010101</td><td>NAK</td><td>&#21;</td><td> </td><td>Negative Acknowledge</td></tr> | ||
+ | <tr><td>22</td><td>026</td><td>16</td><td>00010110</td><td>SYN</td><td>&#22;</td><td> </td><td>Synchronous Idle</td></tr> | ||
+ | <tr><td>23</td><td>027</td><td>17</td><td>00010111</td><td>ETB</td><td>&#23;</td><td> </td><td>End of Transmission Block</td></tr> | ||
+ | <tr><td>24</td><td>030</td><td>18</td><td>00011000</td><td>CAN</td><td>&#24;</td><td> </td><td>Cancel</td></tr> | ||
+ | <tr><td>25</td><td>031</td><td>19</td><td>00011001</td><td>EM</td><td>&#25;</td><td> </td><td>End of medium</td></tr> | ||
+ | <tr><td>26</td><td>032</td><td>1A</td><td>00011010</td><td>SUB</td><td>&#26;</td><td> </td><td>Substitute</td></tr> | ||
+ | <tr><td>27</td><td>033</td><td>1B</td><td>00011011</td><td>ESC</td><td>&#27;</td><td> </td><td>Escape</td></tr> | ||
+ | <tr><td>28</td><td>034</td><td>1C</td><td>00011100</td><td>FS</td><td>&#28;</td><td> </td><td>File Separator</td></tr> | ||
+ | <tr><td>29</td><td>035</td><td>1D</td><td>00011101</td><td>GS</td><td>&#29;</td><td> </td><td>Group Separator</td></tr> | ||
+ | <tr><td>30</td><td>036</td><td>1E</td><td>00011110</td><td>RS</td><td>&#30;</td><td> </td><td>Record Separator</td></tr> | ||
+ | <tr><td>31</td><td>037</td><td>1F</td><td>00011111</td><td>US</td><td>&#31;</td><td> </td><td>Unit Separator</td></tr> | ||
+ | </table> | ||
+ | |||
+ | ====32~127 顯示字元==== | ||
+ | <table class='nicetable'> | ||
+ | <tr> | ||
+ | <th>DEC</th> | ||
+ | <th>OCT</th> | ||
+ | <th>HEX</th> | ||
+ | <th>BIN</th> | ||
+ | <th>Symbol</th> | ||
+ | <th>HTML Number</th> | ||
+ | <th>HTML Name</th> | ||
+ | <th>Description</th> | ||
+ | </tr> | ||
+ | <tr><td>32</td><td>040</td><td>20</td><td>00100000</td><td>SP</td><td>&#32;</td><td> </td><td>Space</td></tr> | ||
+ | <tr><td>33</td><td>041</td><td>21</td><td>00100001</td><td>!</td><td>&#33;</td><td>&excl;</td><td>Exclamation mark</td></tr> | ||
+ | <tr><td>34</td><td>042</td><td>22</td><td>00100010</td><td>'</td><td>&#34;</td><td>&quot;</td><td>Double quotes (or speech marks)</td></tr> | ||
+ | <tr><td>35</td><td>043</td><td>23</td><td>00100011</td><td>#</td><td>&#35;</td><td>&num;</td><td>Number sign</td></tr> | ||
+ | <tr><td>36</td><td>044</td><td>24</td><td>00100100</td><td>$</td><td>&#36;</td><td>&dollar;</td><td>Dollar</td></tr> | ||
+ | <tr><td>37</td><td>045</td><td>25</td><td>00100101</td><td>%</td><td>&#37;</td><td>&percnt;</td><td>Per cent sign</td></tr> | ||
+ | <tr><td>38</td><td>046</td><td>26</td><td>00100110</td><td>&</td><td>&#38;</td><td>&amp;</td><td>Ampersand</td></tr> | ||
+ | <tr><td>39</td><td>047</td><td>27</td><td>00100111</td><td>'</td><td>&#39;</td><td>&apos;</td><td>Single quote</td></tr> | ||
+ | <tr><td>40</td><td>050</td><td>28</td><td>00101000</td><td>(</td><td>&#40;</td><td>&lparen;</td><td>Open parenthesis (or open bracket)</td></tr> | ||
+ | <tr><td>41</td><td>051</td><td>29</td><td>00101001</td><td>)</td><td>&#41;</td><td>&rparen;</td><td>Close parenthesis (or close bracket)</td></tr> | ||
+ | <tr><td>42</td><td>052</td><td>2A</td><td>00101010</td><td>*</td><td>&#42;</td><td>&ast;</td><td>Asterisk</td></tr> | ||
+ | <tr><td>43</td><td>053</td><td>2B</td><td>00101011</td><td>+</td><td>&#43;</td><td>&plus;</td><td>Plus</td></tr> | ||
+ | <tr><td>44</td><td>054</td><td>2C</td><td>00101100</td><td>,</td><td>&#44;</td><td>&comma;</td><td>Comma</td></tr> | ||
+ | <tr><td>45</td><td>055</td><td>2D</td><td>00101101</td><td>-</td><td>&#45;</td><td> </td><td>Hyphen-minus</td></tr> | ||
+ | <tr><td>46</td><td>056</td><td>2E</td><td>00101110</td><td>.</td><td>&#46;</td><td>&period;</td><td>Period, dot or full stop</td></tr> | ||
+ | <tr><td>47</td><td>057</td><td>2F</td><td>00101111</td><td>/</td><td>&#47;</td><td>&sol;</td><td>Slash or divide</td></tr> | ||
+ | <tr><td>48</td><td>060</td><td>30</td><td>00110000</td><td>0</td><td>&#48;</td><td> </td><td>Zero</td></tr> | ||
+ | <tr><td>49</td><td>061</td><td>31</td><td>00110001</td><td>1</td><td>&#49;</td><td> </td><td>One</td></tr> | ||
+ | <tr><td>50</td><td>062</td><td>32</td><td>00110010</td><td>2</td><td>&#50;</td><td> </td><td>Two</td></tr> | ||
+ | <tr><td>51</td><td>063</td><td>33</td><td>00110011</td><td>3</td><td>&#51;</td><td> </td><td>Three</td></tr> | ||
+ | <tr><td>52</td><td>064</td><td>34</td><td>00110100</td><td>4</td><td>&#52;</td><td> </td><td>Four</td></tr> | ||
+ | <tr><td>53</td><td>065</td><td>35</td><td>00110101</td><td>5</td><td>&#53;</td><td> </td><td>Five</td></tr> | ||
+ | <tr><td>54</td><td>066</td><td>36</td><td>00110110</td><td>6</td><td>&#54;</td><td> </td><td>Six</td></tr> | ||
+ | <tr><td>55</td><td>067</td><td>37</td><td>00110111</td><td>7</td><td>&#55;</td><td> </td><td>Seven</td></tr> | ||
+ | <tr><td>56</td><td>070</td><td>38</td><td>00111000</td><td>8</td><td>&#56;</td><td> </td><td>Eight</td></tr> | ||
+ | <tr><td>57</td><td>071</td><td>39</td><td>00111001</td><td>9</td><td>&#57;</td><td> </td><td>Nine</td></tr> | ||
+ | <tr><td>58</td><td>072</td><td>3A</td><td>00111010</td><td>:</td><td>&#58;</td><td>&colon;</td><td>Colon</td></tr> | ||
+ | <tr><td>59</td><td>073</td><td>3B</td><td>00111011</td><td>;</td><td>&#59;</td><td>&semi;</td><td>Semicolon</td></tr> | ||
+ | <tr><td>60</td><td>074</td><td>3C</td><td>00111100</td><td><</td><td>&#60;</td><td>&lt;</td><td>Less than (or open angled bracket)</td></tr> | ||
+ | <tr><td>61</td><td>075</td><td>3D</td><td>00111101</td><td>=</td><td>&#61;</td><td>&equals;</td><td>Equals</td></tr> | ||
+ | <tr><td>62</td><td>076</td><td>3E</td><td>00111110</td><td>></td><td>&#62;</td><td>&gt;</td><td>Greater than (or close angled bracket)</td></tr> | ||
+ | <tr><td>63</td><td>077</td><td>3F</td><td>00111111</td><td>?</td><td>&#63;</td><td>&quest;</td><td>Question mark</td></tr> | ||
+ | <tr><td>64</td><td>100</td><td>40</td><td>01000000</td><td>@</td><td>&#64;</td><td>&commat;</td><td>At sign</td></tr> | ||
+ | <tr><td>65</td><td>101</td><td>41</td><td>01000001</td><td>A</td><td>&#65;</td><td> </td><td>Uppercase A</td></tr> | ||
+ | <tr><td>66</td><td>102</td><td>42</td><td>01000010</td><td>B</td><td>&#66;</td><td> </td><td>Uppercase B</td></tr> | ||
+ | <tr><td>67</td><td>103</td><td>43</td><td>01000011</td><td>C</td><td>&#67;</td><td> </td><td>Uppercase C</td></tr> | ||
+ | <tr><td>68</td><td>104</td><td>44</td><td>01000100</td><td>D</td><td>&#68;</td><td> </td><td>Uppercase D</td></tr> | ||
+ | <tr><td>69</td><td>105</td><td>45</td><td>01000101</td><td>E</td><td>&#69;</td><td> </td><td>Uppercase E</td></tr> | ||
+ | <tr><td>70</td><td>106</td><td>46</td><td>01000110</td><td>F</td><td>&#70;</td><td> </td><td>Uppercase F</td></tr> | ||
+ | <tr><td>71</td><td>107</td><td>47</td><td>01000111</td><td>G</td><td>&#71;</td><td> </td><td>Uppercase G</td></tr> | ||
+ | <tr><td>72</td><td>110</td><td>48</td><td>01001000</td><td>H</td><td>&#72;</td><td> </td><td>Uppercase H</td></tr> | ||
+ | <tr><td>73</td><td>111</td><td>49</td><td>01001001</td><td>I</td><td>&#73;</td><td> </td><td>Uppercase I</td></tr> | ||
+ | <tr><td>74</td><td>112</td><td>4A</td><td>01001010</td><td>J</td><td>&#74;</td><td> </td><td>Uppercase J</td></tr> | ||
+ | <tr><td>75</td><td>113</td><td>4B</td><td>01001011</td><td>K</td><td>&#75;</td><td> </td><td>Uppercase K</td></tr> | ||
+ | <tr><td>76</td><td>114</td><td>4C</td><td>01001100</td><td>L</td><td>&#76;</td><td> </td><td>Uppercase L</td></tr> | ||
+ | <tr><td>77</td><td>115</td><td>4D</td><td>01001101</td><td>M</td><td>&#77;</td><td> </td><td>Uppercase M</td></tr> | ||
+ | <tr><td>78</td><td>116</td><td>4E</td><td>01001110</td><td>N</td><td>&#78;</td><td> </td><td>Uppercase N</td></tr> | ||
+ | <tr><td>79</td><td>117</td><td>4F</td><td>01001111</td><td>O</td><td>&#79;</td><td> </td><td>Uppercase O</td></tr> | ||
+ | <tr><td>80</td><td>120</td><td>50</td><td>01010000</td><td>P</td><td>&#80;</td><td> </td><td>Uppercase P</td></tr> | ||
+ | <tr><td>81</td><td>121</td><td>51</td><td>01010001</td><td>Q</td><td>&#81;</td><td> </td><td>Uppercase Q</td></tr> | ||
+ | <tr><td>82</td><td>122</td><td>52</td><td>01010010</td><td>R</td><td>&#82;</td><td> </td><td>Uppercase R</td></tr> | ||
+ | <tr><td>83</td><td>123</td><td>53</td><td>01010011</td><td>S</td><td>&#83;</td><td> </td><td>Uppercase S</td></tr> | ||
+ | <tr><td>84</td><td>124</td><td>54</td><td>01010100</td><td>T</td><td>&#84;</td><td> </td><td>Uppercase T</td></tr> | ||
+ | <tr><td>85</td><td>125</td><td>55</td><td>01010101</td><td>U</td><td>&#85;</td><td> </td><td>Uppercase U</td></tr> | ||
+ | <tr><td>86</td><td>126</td><td>56</td><td>01010110</td><td>V</td><td>&#86;</td><td> </td><td>Uppercase V</td></tr> | ||
+ | <tr><td>87</td><td>127</td><td>57</td><td>01010111</td><td>W</td><td>&#87;</td><td> </td><td>Uppercase W</td></tr> | ||
+ | <tr><td>88</td><td>130</td><td>58</td><td>01011000</td><td>X</td><td>&#88;</td><td> </td><td>Uppercase X</td></tr> | ||
+ | <tr><td>89</td><td>131</td><td>59</td><td>01011001</td><td>Y</td><td>&#89;</td><td> </td><td>Uppercase Y</td></tr> | ||
+ | <tr><td>90</td><td>132</td><td>5A</td><td>01011010</td><td>Z</td><td>&#90;</td><td> </td><td>Uppercase Z</td></tr> | ||
+ | <tr><td>91</td><td>133</td><td>5B</td><td>01011011</td><td>[</td><td>&#91;</td><td>&lsqb;</td><td>Opening bracket</td></tr> | ||
+ | <tr><td>92</td><td>134</td><td>5C</td><td>01011100</td><td>\</td><td>&#92;</td><td>&bsol;</td><td>Backslash</td></tr> | ||
+ | <tr><td>93</td><td>135</td><td>5D</td><td>01011101</td><td>]</td><td>&#93;</td><td>&rsqb;</td><td>Closing bracket</td></tr> | ||
+ | <tr><td>94</td><td>136</td><td>5E</td><td>01011110</td><td>^</td><td>&#94;</td><td>&Hat;</td><td>Caret - circumflex</td></tr> | ||
+ | <tr><td>95</td><td>137</td><td>5F</td><td>01011111</td><td>_</td><td>&#95;</td><td>&lowbar;</td><td>Underscore</td></tr> | ||
+ | <tr><td>96</td><td>140</td><td>60</td><td>01100000</td><td>`</td><td>&#96;</td><td>&grave;</td><td>Grave accent</td></tr> | ||
+ | <tr><td>97</td><td>141</td><td>61</td><td>01100001</td><td>a</td><td>&#97;</td><td> </td><td>Lowercase a</td></tr> | ||
+ | <tr><td>98</td><td>142</td><td>62</td><td>01100010</td><td>b</td><td>&#98;</td><td> </td><td>Lowercase b</td></tr> | ||
+ | <tr><td>99</td><td>143</td><td>63</td><td>01100011</td><td>c</td><td>&#99;</td><td> </td><td>Lowercase c</td></tr> | ||
+ | <tr><td>100</td><td>144</td><td>64</td><td>01100100</td><td>d</td><td>&#100;</td><td> </td><td>Lowercase d</td></tr> | ||
+ | <tr><td>101</td><td>145</td><td>65</td><td>01100101</td><td>e</td><td>&#101;</td><td> </td><td>Lowercase e</td></tr> | ||
+ | <tr><td>102</td><td>146</td><td>66</td><td>01100110</td><td>f</td><td>&#102;</td><td> </td><td>Lowercase f</td></tr> | ||
+ | <tr><td>103</td><td>147</td><td>67</td><td>01100111</td><td>g</td><td>&#103;</td><td> </td><td>Lowercase g</td></tr> | ||
+ | <tr><td>104</td><td>150</td><td>68</td><td>01101000</td><td>h</td><td>&#104;</td><td> </td><td>Lowercase h</td></tr> | ||
+ | <tr><td>105</td><td>151</td><td>69</td><td>01101001</td><td>i</td><td>&#105;</td><td> </td><td>Lowercase i</td></tr> | ||
+ | <tr><td>106</td><td>152</td><td>6A</td><td>01101010</td><td>j</td><td>&#106;</td><td> </td><td>Lowercase j</td></tr> | ||
+ | <tr><td>107</td><td>153</td><td>6B</td><td>01101011</td><td>k</td><td>&#107;</td><td> </td><td>Lowercase k</td></tr> | ||
+ | <tr><td>108</td><td>154</td><td>6C</td><td>01101100</td><td>l</td><td>&#108;</td><td> </td><td>Lowercase l</td></tr> | ||
+ | <tr><td>109</td><td>155</td><td>6D</td><td>01101101</td><td>m</td><td>&#109;</td><td> </td><td>Lowercase m</td></tr> | ||
+ | <tr><td>110</td><td>156</td><td>6E</td><td>01101110</td><td>n</td><td>&#110;</td><td> </td><td>Lowercase n</td></tr> | ||
+ | <tr><td>111</td><td>157</td><td>6F</td><td>01101111</td><td>o</td><td>&#111;</td><td> </td><td>Lowercase o</td></tr> | ||
+ | <tr><td>112</td><td>160</td><td>70</td><td>01110000</td><td>p</td><td>&#112;</td><td> </td><td>Lowercase p</td></tr> | ||
+ | <tr><td>113</td><td>161</td><td>71</td><td>01110001</td><td>q</td><td>&#113;</td><td> </td><td>Lowercase q</td></tr> | ||
+ | <tr><td>114</td><td>162</td><td>72</td><td>01110010</td><td>r</td><td>&#114;</td><td> </td><td>Lowercase r</td></tr> | ||
+ | <tr><td>115</td><td>163</td><td>73</td><td>01110011</td><td>s</td><td>&#115;</td><td> </td><td>Lowercase s</td></tr> | ||
+ | <tr><td>116</td><td>164</td><td>74</td><td>01110100</td><td>t</td><td>&#116;</td><td> </td><td>Lowercase t</td></tr> | ||
+ | <tr><td>117</td><td>165</td><td>75</td><td>01110101</td><td>u</td><td>&#117;</td><td> </td><td>Lowercase u</td></tr> | ||
+ | <tr><td>118</td><td>166</td><td>76</td><td>01110110</td><td>v</td><td>&#118;</td><td> </td><td>Lowercase v</td></tr> | ||
+ | <tr><td>119</td><td>167</td><td>77</td><td>01110111</td><td>w</td><td>&#119;</td><td> </td><td>Lowercase w</td></tr> | ||
+ | <tr><td>120</td><td>170</td><td>78</td><td>01111000</td><td>x</td><td>&#120;</td><td> </td><td>Lowercase x</td></tr> | ||
+ | <tr><td>121</td><td>171</td><td>79</td><td>01111001</td><td>y</td><td>&#121;</td><td> </td><td>Lowercase y</td></tr> | ||
+ | <tr><td>122</td><td>172</td><td>7A</td><td>01111010</td><td>z</td><td>&#122;</td><td> </td><td>Lowercase z</td></tr> | ||
+ | <tr><td>123</td><td>173</td><td>7B</td><td>01111011</td><td>{</td><td>&#123;</td><td>&lcub;</td><td>Opening brace</td></tr> | ||
+ | <tr><td>124</td><td>174</td><td>7C</td><td>01111100</td><td>|</td><td>&#124;</td><td>&verbar;</td><td>Vertical bar</td></tr> | ||
+ | <tr><td>125</td><td>175</td><td>7D</td><td>01111101</td><td>}</td><td>&#125;</td><td>&rcub;</td><td>Closing brace</td></tr> | ||
+ | <tr><td>126</td><td>176</td><td>7E</td><td>01111110</td><td>~</td><td>&#126;</td><td>&tilde;</td><td>Equivalency sign - tilde</td></tr> | ||
+ | <tr><td>127</td><td>177</td><td>7F</td><td>01111111</td><td>DEL</td><td>&#127;</td><td> </td><td>Delete</td></tr> | ||
+ | </table> | ||
+ | |||
+ | ===2 位元組編碼:=== | ||
+ | |||
+ | ===等價=== | ||
+ | : | ||
+ | 「◾◾◽◽◽◽◽◽,◾◽??????」與「◽◽??????」皆合法且等價 | ||
+ | #https://graphemica.com/%C2%A1 | ||
+ | #https://www.ascii-code.com/ | ||
+ | #http://jendo.org/study/showChar.html | ||
+ | #http://jendo.org/study/seeDecode.php |
2023年8月9日 (三) 17:42的最新修訂版本
目錄
特殊字元
有 HTML 或 URL 意涵的字元
字元 | 實體名稱 | 字元編碼 |
---|---|---|
不換行空格 | |   |
< | < | < |
> | > | > |
" | " | " |
' | ' | ' |
& | & | & |
碼位與字元
UTF-8編碼位元組含義:
- ◽◾◾◾◾◾◾◾,對於UTF-8編碼中的任意位元組B,如果B的第一位為0,則B獨立的表示一個字元(ASCII碼);
- ◾◽??????,128~191,如果B的第一位為1,第二位為0,則B為一個多位元組字元中的一個位元組(非ASCII字元);
- 識別位元固定為 128 ,表值 0~63。
- ◾◾◽?????,192~223,如果B的前兩位為1,第三位為0,則B為兩個位元組表示的字元中的第一個位元組;
- 識別位元固定為 192 ,(0~31)×64。
- ◾◾◾◽????,224~239,如果B的前三位為1,第四位為0,則B為三個位元組表示的字元中的第一個位元組;
- ◾◾◾◾◽???,240~247,如果B的前四位為1,第五位為0,則B為四個位元組表示的字元中的第一個位元組;
組成字(以「瓦」的中文 3 byte 為例):
- 第一 byte 231, 231-224=7 ,單位 4096
- 第二 byte 147, 147-128=19 ,單位 64
- 第三 byte 166, 166-128=38 ,單位 1
- 字碼 = 7×4096+19×64+38=29926 ,字碼寫成 瓦
顯示編碼位的方法:
以 PHP 為例。
(一)由整數碼位生成對應的字符
- chr(整數碼位):產生單 byte 字元,如 ASCII、ISO-8859 或 Windows 1252。整數由 0~255 。無法通過傳遞一個 Unicode 碼位值來產生多位元組編碼 (像是 UTF-8 或 UTF-16) 字串。超過有效範圍 (0~255) 的值將用以下演算法處理:
while($bytevalue < 0){$bytevalue += 256;} $bytevalue %= 256;
運用多個chr(…)連接可以得到多 byte UTF-8 字符,如「echo chr(240).chr(159).chr(144).chr(152);」會得到「🐘」。
碼位寬度有幾 byte 和顯示字型有多寬無關。 - mb_chr(整數碼位,'UTF-8'):在啟用了 mbstring 擴展的前提下,可以使用。即使是控制碼也生成。
- &#整數碼位;:
- html_entity_decode('&#整數碼位;', ENT_NOQUOTES, 'UTF-8')
(二)找出字符的碼位
- ord(字串):轉換字串第一個位元組為某個碼位 (0~255 之間的值)
- mb_ord(字串, '編碼'):獲取字串的第一個字元在某一種 Unicode 編碼中的碼位值。編碼可以是 UTF-8、ISO-8859-1、Windows-1252。
- htmlentities(字串[,flags,'字符集',是否轉換]):將字串中的特殊字元轉換為 HTML 轉義字元(&#…;)
1 位元組編碼:
0~31 控制字元
DEC | OCT | HEX | BIN | Symbol | HTML Number | HTML Name | Description |
---|---|---|---|---|---|---|---|
0 | 000 | 00 | 00000000 | NUL | � | Null character | |
1 | 001 | 01 | 00000001 | SOH |  | Start of Heading | |
2 | 002 | 02 | 00000010 | STX |  | Start of Text | |
3 | 003 | 03 | 00000011 | ETX |  | End of Text | |
4 | 004 | 04 | 00000100 | EOT |  | End of Transmission | |
5 | 005 | 05 | 00000101 | ENQ |  | Enquiry | |
6 | 006 | 06 | 00000110 | ACK |  | Acknowledge | |
7 | 007 | 07 | 00000111 | BEL |  | Bell, Alert | |
8 | 010 | 08 | 00001000 | BS |  | Backspace | |
9 | 011 | 09 | 00001001 | HT | 	 | Horizontal Tab | |
10 | 012 | 0A | 00001010 | LF | | Line Feed | |
11 | 013 | 0B | 00001011 | VT |  | Vertical Tabulation | |
12 | 014 | 0C | 00001100 | FF |  | Form Feed | |
13 | 015 | 0D | 00001101 | CR | | Carriage Return | |
14 | 016 | 0E | 00001110 | SO |  | Shift Out | |
15 | 017 | 0F | 00001111 | SI |  | Shift In | |
16 | 020 | 10 | 00010000 | DLE |  | Data Link Escape | |
17 | 021 | 11 | 00010001 | DC1 |  | Device Control One (XON) | |
18 | 022 | 12 | 00010010 | DC2 |  | Device Control Two | |
19 | 023 | 13 | 00010011 | DC3 |  | Device Control Three (XOFF) | |
20 | 024 | 14 | 00010100 | DC4 |  | Device Control Four | |
21 | 025 | 15 | 00010101 | NAK |  | Negative Acknowledge | |
22 | 026 | 16 | 00010110 | SYN |  | Synchronous Idle | |
23 | 027 | 17 | 00010111 | ETB |  | End of Transmission Block | |
24 | 030 | 18 | 00011000 | CAN |  | Cancel | |
25 | 031 | 19 | 00011001 | EM |  | End of medium | |
26 | 032 | 1A | 00011010 | SUB |  | Substitute | |
27 | 033 | 1B | 00011011 | ESC |  | Escape | |
28 | 034 | 1C | 00011100 | FS |  | File Separator | |
29 | 035 | 1D | 00011101 | GS |  | Group Separator | |
30 | 036 | 1E | 00011110 | RS |  | Record Separator | |
31 | 037 | 1F | 00011111 | US |  | Unit Separator |
32~127 顯示字元
DEC | OCT | HEX | BIN | Symbol | HTML Number | HTML Name | Description |
---|---|---|---|---|---|---|---|
32 | 040 | 20 | 00100000 | SP |   | Space | |
33 | 041 | 21 | 00100001 | ! | ! | ! | Exclamation mark |
34 | 042 | 22 | 00100010 | ' | " | " | Double quotes (or speech marks) |
35 | 043 | 23 | 00100011 | # | # | # | Number sign |
36 | 044 | 24 | 00100100 | $ | $ | $ | Dollar |
37 | 045 | 25 | 00100101 | % | % | % | Per cent sign |
38 | 046 | 26 | 00100110 | & | & | & | Ampersand |
39 | 047 | 27 | 00100111 | ' | ' | ' | Single quote |
40 | 050 | 28 | 00101000 | ( | ( | &lparen; | Open parenthesis (or open bracket) |
41 | 051 | 29 | 00101001 | ) | ) | &rparen; | Close parenthesis (or close bracket) |
42 | 052 | 2A | 00101010 | * | * | * | Asterisk |
43 | 053 | 2B | 00101011 | + | + | + | Plus |
44 | 054 | 2C | 00101100 | , | , | , | Comma |
45 | 055 | 2D | 00101101 | - | - | Hyphen-minus | |
46 | 056 | 2E | 00101110 | . | . | . | Period, dot or full stop |
47 | 057 | 2F | 00101111 | / | / | / | Slash or divide |
48 | 060 | 30 | 00110000 | 0 | 0 | Zero | |
49 | 061 | 31 | 00110001 | 1 | 1 | One | |
50 | 062 | 32 | 00110010 | 2 | 2 | Two | |
51 | 063 | 33 | 00110011 | 3 | 3 | Three | |
52 | 064 | 34 | 00110100 | 4 | 4 | Four | |
53 | 065 | 35 | 00110101 | 5 | 5 | Five | |
54 | 066 | 36 | 00110110 | 6 | 6 | Six | |
55 | 067 | 37 | 00110111 | 7 | 7 | Seven | |
56 | 070 | 38 | 00111000 | 8 | 8 | Eight | |
57 | 071 | 39 | 00111001 | 9 | 9 | Nine | |
58 | 072 | 3A | 00111010 | : | : | : | Colon |
59 | 073 | 3B | 00111011 | ; | ; | ; | Semicolon |
60 | 074 | 3C | 00111100 | < | < | < | Less than (or open angled bracket) |
61 | 075 | 3D | 00111101 | = | = | = | Equals |
62 | 076 | 3E | 00111110 | > | > | > | Greater than (or close angled bracket) |
63 | 077 | 3F | 00111111 | ? | ? | ? | Question mark |
64 | 100 | 40 | 01000000 | @ | @ | @ | At sign |
65 | 101 | 41 | 01000001 | A | A | Uppercase A | |
66 | 102 | 42 | 01000010 | B | B | Uppercase B | |
67 | 103 | 43 | 01000011 | C | C | Uppercase C | |
68 | 104 | 44 | 01000100 | D | D | Uppercase D | |
69 | 105 | 45 | 01000101 | E | E | Uppercase E | |
70 | 106 | 46 | 01000110 | F | F | Uppercase F | |
71 | 107 | 47 | 01000111 | G | G | Uppercase G | |
72 | 110 | 48 | 01001000 | H | H | Uppercase H | |
73 | 111 | 49 | 01001001 | I | I | Uppercase I | |
74 | 112 | 4A | 01001010 | J | J | Uppercase J | |
75 | 113 | 4B | 01001011 | K | K | Uppercase K | |
76 | 114 | 4C | 01001100 | L | L | Uppercase L | |
77 | 115 | 4D | 01001101 | M | M | Uppercase M | |
78 | 116 | 4E | 01001110 | N | N | Uppercase N | |
79 | 117 | 4F | 01001111 | O | O | Uppercase O | |
80 | 120 | 50 | 01010000 | P | P | Uppercase P | |
81 | 121 | 51 | 01010001 | Q | Q | Uppercase Q | |
82 | 122 | 52 | 01010010 | R | R | Uppercase R | |
83 | 123 | 53 | 01010011 | S | S | Uppercase S | |
84 | 124 | 54 | 01010100 | T | T | Uppercase T | |
85 | 125 | 55 | 01010101 | U | U | Uppercase U | |
86 | 126 | 56 | 01010110 | V | V | Uppercase V | |
87 | 127 | 57 | 01010111 | W | W | Uppercase W | |
88 | 130 | 58 | 01011000 | X | X | Uppercase X | |
89 | 131 | 59 | 01011001 | Y | Y | Uppercase Y | |
90 | 132 | 5A | 01011010 | Z | Z | Uppercase Z | |
91 | 133 | 5B | 01011011 | [ | [ | [ | Opening bracket |
92 | 134 | 5C | 01011100 | \ | \ | \ | Backslash |
93 | 135 | 5D | 01011101 | ] | ] | ] | Closing bracket |
94 | 136 | 5E | 01011110 | ^ | ^ | ^ | Caret - circumflex |
95 | 137 | 5F | 01011111 | _ | _ | _ | Underscore |
96 | 140 | 60 | 01100000 | ` | ` | ` | Grave accent |
97 | 141 | 61 | 01100001 | a | a | Lowercase a | |
98 | 142 | 62 | 01100010 | b | b | Lowercase b | |
99 | 143 | 63 | 01100011 | c | c | Lowercase c | |
100 | 144 | 64 | 01100100 | d | d | Lowercase d | |
101 | 145 | 65 | 01100101 | e | e | Lowercase e | |
102 | 146 | 66 | 01100110 | f | f | Lowercase f | |
103 | 147 | 67 | 01100111 | g | g | Lowercase g | |
104 | 150 | 68 | 01101000 | h | h | Lowercase h | |
105 | 151 | 69 | 01101001 | i | i | Lowercase i | |
106 | 152 | 6A | 01101010 | j | j | Lowercase j | |
107 | 153 | 6B | 01101011 | k | k | Lowercase k | |
108 | 154 | 6C | 01101100 | l | l | Lowercase l | |
109 | 155 | 6D | 01101101 | m | m | Lowercase m | |
110 | 156 | 6E | 01101110 | n | n | Lowercase n | |
111 | 157 | 6F | 01101111 | o | o | Lowercase o | |
112 | 160 | 70 | 01110000 | p | p | Lowercase p | |
113 | 161 | 71 | 01110001 | q | q | Lowercase q | |
114 | 162 | 72 | 01110010 | r | r | Lowercase r | |
115 | 163 | 73 | 01110011 | s | s | Lowercase s | |
116 | 164 | 74 | 01110100 | t | t | Lowercase t | |
117 | 165 | 75 | 01110101 | u | u | Lowercase u | |
118 | 166 | 76 | 01110110 | v | v | Lowercase v | |
119 | 167 | 77 | 01110111 | w | w | Lowercase w | |
120 | 170 | 78 | 01111000 | x | x | Lowercase x | |
121 | 171 | 79 | 01111001 | y | y | Lowercase y | |
122 | 172 | 7A | 01111010 | z | z | Lowercase z | |
123 | 173 | 7B | 01111011 | { | { | { | Opening brace |
124 | 174 | 7C | 01111100 | | | | | | | Vertical bar |
125 | 175 | 7D | 01111101 | } | } | } | Closing brace |
126 | 176 | 7E | 01111110 | ~ | ~ | ˜ | Equivalency sign - tilde |
127 | 177 | 7F | 01111111 | DEL |  | Delete |
2 位元組編碼:
等價
: 「◾◾◽◽◽◽◽◽,◾◽??????」與「◽◽??????」皆合法且等價