| 1 | | - | The [[global compiler directives|global compiler directive]] |
| 2 | | - | |
| 3 | | - | ``` pascal |
| 4 | | - | {$codePage} |
| 5 | | - | ``` |
| 6 | | - | |
| 7 | | - | indicates how to interpret [[string]] literals. |
| 1 | + | The [[global compiler directives|global compiler directive]] `{$codePage}` indicates how to interpret [[string]] literals. |
| 8 | 2 | | |
| 9 | 3 | | ## available code pages |
| 10 | 4 | | |
| 11 | 5 | | The [[FPC]] can understand following code pages: |
| 12 | 6 | | |
| 13 | 7 | | <table> |
| 14 | 8 | | <thead> |
| 15 | 9 | | <tr> |
| 16 | | - | <th><p>code page</p></th> |
| 17 | | - | <th><p>description</p></th> |
| 10 | + | <th>code page</th> |
| 11 | + | <th>description</th> |
| 18 | 12 | | </tr> |
| 19 | 13 | | </thead> |
| 20 | 14 | | <tbody> |
| 21 | 15 | | <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> |
| 16 | + | <td><code>{$codePage CP437}</code></td> |
| 17 | + | <td>Original IBM PC or DOS Latin US <a href="https://en.wikipedia.org/wiki/Code_page_437">code page 437</a></td> |
| 24 | 18 | | </tr> |
| 25 | 19 | | <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> |
| 20 | + | <td><code>{$codePage CP850}</code></td> |
| 21 | + | <td>DOS Latin 1 <a href="https://en.wikipedia.org/wiki/Code_page_850">code page 850</a></td> |
| 28 | 22 | | </tr> |
| 29 | 23 | | <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> |
| 24 | + | <td><code>{$codePage CP852}</code></td> |
| 25 | + | <td>DOS Latin 2 <a href="https://en.wikipedia.org/wiki/Code_page_852">code page 852</a></td> |
| 32 | 26 | | </tr> |
| 33 | 27 | | <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> |
| 28 | + | <td><code>{$codePage CP856}</code></td> |
| 29 | + | <td>Hebrew, <a href="https://en.wikipedia.org/wiki/Code_page_856">code page 856</a></td> |
| 36 | 30 | | </tr> |
| 37 | 31 | | <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> |
| 32 | + | <td><code>{$codePage CP866}</code></td> |
| 33 | + | <td>Cyrillic script, <a href="https://en.wikipedia.org/wiki/Code_page_866">code page 866</a></td> |
| 40 | 34 | | </tr> |
| 41 | 35 | | <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> |
| 36 | + | <td><code>{$codePage CP874}</code></td> |
| 37 | + | <td>Thai, <a href="https://en.wikipedia.org/wiki/Code_page_874">ISO/IEC 8859‑11</a></td> |
| 44 | 38 | | </tr> |
| 45 | 39 | | <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> |
| 40 | + | <td><code>{$codePage CP1250}</code></td> |
| 41 | + | <td><a href="https://en.wikipedia.org/wiki/Windows-1250">Windows‑1250</a></td> |
| 48 | 42 | | </tr> |
| 49 | 43 | | <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> |
| 44 | + | <td><code>{$codePage CP1251}</code></td> |
| 45 | + | <td>Cyrillic script, <a href="https://en.wikipedia.org/wiki/Windows-1251">Windows‑1251</a></td> |
| 52 | 46 | | </tr> |
| 53 | 47 | | <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> |
| 48 | + | <td><code>{$codePage CP1252}</code></td> |
| 49 | + | <td><a href="https://en.wikipedia.org/wiki/Windows-1252">Windows‑1252</a></td> |
| 56 | 50 | | </tr> |
| 57 | 51 | | <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> |
| 52 | + | <td><code>{$codePage CP1253}</code></td> |
| 53 | + | <td>Greek script, <a href="https://en.wikipedia.org/wiki/Windows-1253">Windows‑1253</a></td> |
| 60 | 54 | | </tr> |
| 61 | 55 | | <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> |
| 56 | + | <td><code>{$codePage CP1254}</code></td> |
| 57 | + | <td>Turkish, <a href="https://en.wikipedia.org/wiki/Windows-1254">Windows‑1254</a></td> |
| 64 | 58 | | </tr> |
| 65 | 59 | | <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> |
| 60 | + | <td><code>{$codePage CP1255}</code></td> |
| 61 | + | <td>Hebrew, <a href="https://en.wikipedia.org/wiki/Windows-1255">Windows‑1255</a></td> |
| 68 | 62 | | </tr> |
| 69 | 63 | | <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> |
| 64 | + | <td><code>{$codePage CP1256}</code></td> |
| 65 | + | <td>Arabic, <a href="https://en.wikipedia.org/wiki/Windows-1256">Windows‑1256</a></td> |
| 72 | 66 | | </tr> |
| 73 | 67 | | <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> |
| 68 | + | <td><code>{$codePage CP1257}</code></td> |
| 69 | + | <td><a href="https://en.wikipedia.org/wiki/Windows-1257">Windows‑1257</a></td> |
| 76 | 70 | | </tr> |
| 77 | 71 | | <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> |
| 72 | + | <td><code>{$codePage CP1258}</code></td> |
| 73 | + | <td>Vietnamese, <a href="https://en.wikipedia.org/wiki/Windows-1258">Windows-1258</a></td> |
| 80 | 74 | | </tr> |
| 81 | 75 | | <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> |
| 76 | + | <td><code>{$codePage 8859-1}</code></td> |
| 77 | + | <td>ISO Latin-1, <a href="https://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO/IEC 8859‑1</a></td> |
| 84 | 78 | | </tr> |
| 85 | 79 | | <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> |
| 80 | + | <td><code>{$codePage 8859-2}</code></td> |
| 81 | + | <td><a href="https://en.wikipedia.org/wiki/ISO/IEC_8859-2">ISO/IEC 8859‑2</a></td> |
| 88 | 82 | | </tr> |
| 89 | 83 | | <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> |
| 84 | + | <td><code>{$codePage 8859-5}</code></td> |
| 85 | + | <td>Cyrillic script, <a href="https://en.wikipedia.org/wiki/ISO/IEC_8859-5">ISO/IEC 8859‑5</a></td> |
| 92 | 86 | | </tr> |
| 93 | 87 | | <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> |
| 88 | + | <td><code>{$codePage UTF-8}</code><br /> |
| 89 | + | <code>{$codePage UTF8}</code></td> |
| 90 | + | <td>pseudo code page to switch back to UTF-8</td> |
| 99 | 91 | | </tr> |
| 100 | 92 | | </tbody> |
| 101 | 93 | | </table> |
| 102 | 94 | | |
| 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). |
| 95 | + | The code page can be selected either via a compiler directive or as a command-line parameter: `‑Fc…` (where `…` is one of the code page names listed above). |
| 116 | 96 | | |
| 117 | 97 | | ## use |
| 118 | 98 | | |
| 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. |
| 99 | + | Since [[FPC New Features 3.0.0|FPC 3.0.0]] every [[Ansistring|ANSIString]] is associated with a CP. |
| 126 | 100 | | |
| 127 | 101 | | ## see also |
| 128 | 102 | | |
| 129 | 103 | | - [[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”\] |
| 104 | + | - [“`$CODEPAGE`: Set the source codepage”](https://freepascal.org/docs-html/current/prog/progsu88.html) |
| 137 | 105 | | - [[Language Codes]] |
| 138 | 106 | | |
| 139 | 107 | | --- |
| 140 | 108 | | *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 | 109 | | Category: Global compiler directives |