$codePage: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: $codePage
| Old | New | Line | |
|---|---|---|---|
| 1 | + | The [[global compiler directives|global compiler directive]] | |
| 2 | + | ||
| 3 | + | ``` pascal | |
| 4 | + | {$codePage} | |
| 5 | + | ``` | |
| 6 | + | ||
| 7 | + | indicates how to interpret [[string]] literals. | |
| 8 | + | ||
| 9 | + | ## available code pages | |
| 10 | + | ||
| 11 | + | The [[FPC]] can understand following code pages: | |
| 12 | + | ||
| 13 | + | <table> | |
| 14 | + | <thead> | |
| 15 | + | <tr> | |
| 16 | + | <th><p>code page</p></th> | |
| 17 | + | <th><p>description</p></th> | |
| 18 | + | </tr> | |
| 19 | + | </thead> | |
| 20 | + | <tbody> | |
| 21 | + | <tr> | |
| 22 | + | <td><div class="sourceCode" id="cb1"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP437}</span></span></code></pre></div></td> | |
| 23 | + | <td><p>Original IBM PC or DOS Latin US <a href="https://en.wikipedia.org/wiki/Code_page_437">code page 437</a></p></td> | |
| 24 | + | </tr> | |
| 25 | + | <tr> | |
| 26 | + | <td><div class="sourceCode" id="cb2"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP850}</span></span></code></pre></div></td> | |
| 27 | + | <td><p>DOS Latin 1 <a href="https://en.wikipedia.org/wiki/Code_page_850">code page 850</a></p></td> | |
| 28 | + | </tr> | |
| 29 | + | <tr> | |
| 30 | + | <td><div class="sourceCode" id="cb3"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP852}</span></span></code></pre></div></td> | |
| 31 | + | <td><p>DOS Latin 2 <a href="https://en.wikipedia.org/wiki/Code_page_852">code page 852</a></p></td> | |
| 32 | + | </tr> | |
| 33 | + | <tr> | |
| 34 | + | <td><div class="sourceCode" id="cb4"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP856}</span></span></code></pre></div></td> | |
| 35 | + | <td><p>Hebrew, <a href="https://en.wikipedia.org/wiki/Code_page_856">code page 856</a></p></td> | |
| 36 | + | </tr> | |
| 37 | + | <tr> | |
| 38 | + | <td><div class="sourceCode" id="cb5"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP866}</span></span></code></pre></div></td> | |
| 39 | + | <td><p>Cyrillic script, <a href="https://en.wikipedia.org/wiki/Code_page_866">code page 866</a></p></td> | |
| 40 | + | </tr> | |
| 41 | + | <tr> | |
| 42 | + | <td><div class="sourceCode" id="cb6"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP874}</span></span></code></pre></div></td> | |
| 43 | + | <td><p>Thai, <a href="https://en.wikipedia.org/wiki/Code_page_874">ISO/IEC 8859‑11</a></p></td> | |
| 44 | + | </tr> | |
| 45 | + | <tr> | |
| 46 | + | <td><div class="sourceCode" id="cb7"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP1250}</span></span></code></pre></div></td> | |
| 47 | + | <td><p><a href="https://en.wikipedia.org/wiki/Windows-1250">Windows‑1250</a></p></td> | |
| 48 | + | </tr> | |
| 49 | + | <tr> | |
| 50 | + | <td><div class="sourceCode" id="cb8"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP1251}</span></span></code></pre></div></td> | |
| 51 | + | <td><p>Cyrillic script, <a href="https://en.wikipedia.org/wiki/Windows-1251">Windows‑1251</a></p></td> | |
| 52 | + | </tr> | |
| 53 | + | <tr> | |
| 54 | + | <td><div class="sourceCode" id="cb9"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP1252}</span></span></code></pre></div></td> | |
| 55 | + | <td><p><a href="https://en.wikipedia.org/wiki/Windows-1252">Windows‑1252</a></p></td> | |
| 56 | + | </tr> | |
| 57 | + | <tr> | |
| 58 | + | <td><div class="sourceCode" id="cb10"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP1253}</span></span></code></pre></div></td> | |
| 59 | + | <td><p>Greek script, <a href="https://en.wikipedia.org/wiki/Windows-1253">Windows‑1253</a></p></td> | |
| 60 | + | </tr> | |
| 61 | + | <tr> | |
| 62 | + | <td><div class="sourceCode" id="cb11"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP1254}</span></span></code></pre></div></td> | |
| 63 | + | <td><p>Turkish, <a href="https://en.wikipedia.org/wiki/Windows-1254">Windows‑1254</a></p></td> | |
| 64 | + | </tr> | |
| 65 | + | <tr> | |
| 66 | + | <td><div class="sourceCode" id="cb12"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP1255}</span></span></code></pre></div></td> | |
| 67 | + | <td><p>Hebrew, <a href="https://en.wikipedia.org/wiki/Windows-1255">Windows‑1255</a></p></td> | |
| 68 | + | </tr> | |
| 69 | + | <tr> | |
| 70 | + | <td><div class="sourceCode" id="cb13"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP1256}</span></span></code></pre></div></td> | |
| 71 | + | <td><p>Arabic, <a href="https://en.wikipedia.org/wiki/Windows-1256">Windows‑1256</a></p></td> | |
| 72 | + | </tr> | |
| 73 | + | <tr> | |
| 74 | + | <td><div class="sourceCode" id="cb14"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP1257}</span></span></code></pre></div></td> | |
| 75 | + | <td><p><a href="https://en.wikipedia.org/wiki/Windows-1257">Windows‑1257</a></p></td> | |
| 76 | + | </tr> | |
| 77 | + | <tr> | |
| 78 | + | <td><div class="sourceCode" id="cb15"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage CP1258}</span></span></code></pre></div></td> | |
| 79 | + | <td><p>Vietnamese, <a href="https://en.wikipedia.org/wiki/Windows-1258">Windows-1258</a></p></td> | |
| 80 | + | </tr> | |
| 81 | + | <tr> | |
| 82 | + | <td><div class="sourceCode" id="cb16"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage 8859-1}</span></span></code></pre></div></td> | |
| 83 | + | <td><p>ISO Latin-1, <a href="https://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO/IEC 8859‑1</a></p></td> | |
| 84 | + | </tr> | |
| 85 | + | <tr> | |
| 86 | + | <td><div class="sourceCode" id="cb17"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage 8859-2}</span></span></code></pre></div></td> | |
| 87 | + | <td><p><a href="https://en.wikipedia.org/wiki/ISO/IEC_8859-2">ISO/IEC 8859‑2</a></p></td> | |
| 88 | + | </tr> | |
| 89 | + | <tr> | |
| 90 | + | <td><div class="sourceCode" id="cb18"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage 8859-5}</span></span></code></pre></div></td> | |
| 91 | + | <td><p>Cyrillic script, <a href="https://en.wikipedia.org/wiki/ISO/IEC_8859-5">ISO/IEC 8859‑5</a></p></td> | |
| 92 | + | </tr> | |
| 93 | + | <tr> | |
| 94 | + | <td><div class="sourceCode" id="cb19"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb19-1"><a href="#cb19-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage UTF-8}</span></span></code></pre></div> | |
| 95 | + | <p><br /> | |
| 96 | + | </p> | |
| 97 | + | <div class="sourceCode" id="cb20"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb20-1"><a href="#cb20-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$codePage UTF8}</span></span></code></pre></div></td> | |
| 98 | + | <td><p>pseudo code page to switch back to UTF-8</p></td> | |
| 99 | + | </tr> | |
| 100 | + | </tbody> | |
| 101 | + | </table> | |
| 102 | + | ||
| 103 | + | The code page can be selected either via a compiler directive or as a command-line parameter: | |
| 104 | + | ||
| 105 | + | ```text | |
| 106 | + | ‑Fc… | |
| 107 | + | ``` | |
| 108 | + | ||
| 109 | + | (where | |
| 110 | + | ||
| 111 | + | ```text | |
| 112 | + | … | |
| 113 | + | ``` | |
| 114 | + | ||
| 115 | + | is one of the code page names listed above). | |
| 116 | + | ||
| 117 | + | ## use | |
| 118 | + | ||
| 119 | + | Since [[FPC New Features 3.0.0|FPC 3.0.0]] every \[\[Ansistring\| | |
| 120 | + | ||
| 121 | + | ```delphi | |
| 122 | + | ANSIString | |
| 123 | + | ``` | |
| 124 | + | ||
| 125 | + | \]\] is associated with a CP. | |
| 126 | + | ||
| 127 | + | ## see also | |
| 128 | + | ||
| 129 | + | - [[FPC Unicode support|FPC Unicode support § “source file code page”]] | |
| 130 | + | - \[<https://freepascal.org/docs-html/current/prog/progsu88.html> “ | |
| 131 | + | ```text | |
| 132 | + | $CODEPAGE | |
| 133 | + | ``` | |
| 134 | + | ||
| 135 | + | ||
| 136 | + | Set the source codepage”\] | |
| 137 | + | - [[Language Codes]] | |
| 138 | + | ||
| 139 | + | --- | |
| 140 | + | *From the Free Pascal wiki, page "$codePage", as it stood on 2023-11-11 after a change by Bart, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* | |
| 141 | + | Category: Global compiler directives |
