{"title":"Sonraí Unicode","version":"6.1","locale":"ga","docname":"ref/unicode","url":"/ga/6.1/ref/unicode/","canonical":"https://djangodocs.dev/ga/6.1/ref/unicode/","summary":"Tacaíonn Django le sonraí Unicode i ngach áit. Insíonn an doiciméad seo duit cad is gá duit a bheith ar an eolas má tá tú ag scríobh feidhmchláir a úsáideann sonraí…","html":"<h1>Sonraí Unicode<a class=\"heading-anchor\" href=\"#unicode-data\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Tacaíonn Django le sonraí Unicode i ngach áit.</p>\n<p>Insíonn an doiciméad seo duit cad is gá duit a bheith ar an eolas má tá tú ag scríobh feidhmchláir a úsáideann sonraí nó teimpléid atá ionchódaithe i rud éigin eile seachas ASCII.</p>\n<section id=\"creating-the-database\">\n<h2>An bunachar sonraí a chruthú<a class=\"heading-anchor\" href=\"#creating-the-database\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Déan cinnte go bhfuil do bhunachar sonraí cumraithe chun a bheith in ann sonraí sreangán treallach a stóráil De ghnáth, ciallaíonn sé seo ionchódú UTF-8 nó UTF-16 a thabhairt dó. Má úsáideann tú ionchódú níos sriantacha - mar shampla, latin1 (iso8859-1) - ní bheidh tú in ann carachtair áirithe a stóráil sa bhunachar sonraí, agus caillfear faisnéis.</p>\n<ul class=\"simple\">\n<li><p>Úsáideoirí MySQL, féach ar an <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>lámhleabhar MySQL <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>_ le haghaidh sonraí maidir le conas ionchódú tacar carachtair bunachar sonraí a shocrú nó a athrú.</p></li>\n<li><p>Úsáideoirí PostgreSQL, féach ar an <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>lámhleabhar PostgreSQL <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>_ le haghaidh sonraí maidir le bunachair sonraí a chruthú leis an ionchódú ceart.</p></li>\n<li><p>Úsáideoirí Oracle, féach ar an <a class=\"reference external\" href=\"https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/index.html\">lámhleabhar Oracle</a> le haghaidh sonraí maidir le conas ionchódú tacar carachtar bunachar sonraí a shocrú (<a class=\"reference external\" href=\"https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/character-set-migration.html\">alt 2</a>) nó a athrú (<a class=\"reference external\" href=\"https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/choosing-character-set.html\">alt 11</a>).</p></li>\n<li><p>Úsáideoirí SQLite, níl aon rud is gá duit a dhéanamh. Úsáideann SQLite UTF-8 i gcónaí le haghaidh ionchódú inmheánach.</p></li>\n</ul>\n<p>Tiontaíonn cúltaca bunachar sonraí go léir Django teaghráin go huathoibríoch ina ionchódú cuí chun labhairt leis an mbunachar sonraí. Déanann siad teaghráin a aisghabhadh ón mbunachar sonraí a thiontú go huathoi Ní gá duit fiú a rá le Django cén ionchódú a úsáideann do bhunachar sonraí: déantar é sin a láimhseáil go trédhearcach.</p>\n<p>Le haghaidh tuilleadh, féach an chuid “An API bunachar sonraí” thíos.</p>\n</section>\n<section id=\"general-string-handling\">\n<h2>Láimhseáil teaghrán gin<a class=\"heading-anchor\" href=\"#general-string-handling\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Aon uair a úsáideann tú teaghráin le Django - m.sh. i lorg bunachar sonraí, rindreáil teimpléad nó áit ar bith eile - tá dhá rogha agat chun na teaghráin sin a ionchódú. Is féidir leat gnáthteaghráin nó bytestrings a úsáid (ag tosú le 'b').</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Ní iompraíonn bytestring aon fhaisnéis leis faoina ionchódú. Ar an gcúis sin, caithfimid toimhde a dhéanamh, agus glacann Django leis go bhfuil gach bytestrings i UTF-8.</p>\n<p>Má chuireann tú sreang chuig Django atá ionchódaithe i bhformáid éigin eile, rachaidh rudaí mícheart ar bhealaí suimiúla. De ghnáth, ardóidh Django <code class=\"docutils literal notranslate\"><span class=\"pre\">UnicodeDecodeError</span></code> ag pointe éigin.</p>\n</aside>\n<p>Mura n-úsáideann do chód ach sonraí ASCII, tá sé sábháilte do ghnáthshreangáin a úsáid, agus iad a chur timpeall ar uacht, toisc gur fo-thacar de UTF-8 é ASCII.</p>\n<p>Ná bíodh a mhealladh ag smaoineamh má tá do socrú: setting: DEFAULT_CHARSET socraithe ar rud éigin seachas <code class=\"docutils literal notranslate\"><span class=\"pre\">utf-8'</span></code> is féidir leat an t-ionchódú eile sin a úsáid i do theagraí bytestrings! :setting: Ní bhaineann DEFAULT_CHARSET ach leis na teaghráin a ghintear mar thoradh ar rindreáil teimpléid (agus ríomhphost). Glacfaidh Django le hionchódú UTF-8 i gcónaí le haghaidh bytestrings inmheánacha. Is é an chúis leis seo ná nach bhfuil an socrú: setting: DEFAULT_CHARSET faoi do smacht i ndáiríre (más tusa an forbróir feidhmchláir). Tá sé faoi smacht an duine atá ag suiteáil agus ag úsáid d'iarratas - agus má roghnaíonn an duine sin suíomh difriúil, caithfidh do chód leanúint ar aghaidh ag obair. Mar sin, ní féidir leis brath ar an suíomh sin.</p>\n<p>I bhformhór na gcásanna nuair a bhíonn Django ag déileáil le teaghráin, tiontóidh sé iad go teaghráin sula ndéanfaidh sé aon rud eile. Mar sin, mar riail ghinearálta, má théann tú i mbytestring, bí réidh le sreang a fháil ar ais sa toradh.</p>\n<section id=\"translated-strings\">\n<h3>Teagáin aistrithe<a class=\"heading-anchor\" href=\"#translated-strings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Seachas teaghráin agus bytestrings, tá tríú cineál réad cosúil le sreanga ann a d'fhéadfá teacht ar aghaidh agus Django á úsáid agat. Tugann gnéithe idirnáisiúnaithe an chreat coincheap “aistriúcháin leisciúil” isteach - sreang atá marcáilte mar aistrithe ach nach gcinntear a thoradh aistriúcháin iarbhír go dtí go n-úsáidtear an réad i sreang. Tá an ghné seo úsáideach i gcásanna nach bhfuil an láithreán aistriúcháin ar eolas go dtí go n-úsáidtear an sreang, cé go bhféadfadh gur cruthaíodh an teaghrán ar dtús nuair a allmhairíodh an cód den chéad uair.</p>\n<p>De ghnáth, ní bheidh ort a bheith buartha faoi aistriúcháin leisciúla. Bí ar an eolas má scrúdaíonn tú réad agus maíonn sé gur <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.functional</span> <span class=\"pre\">é.</span> <span class=\"pre\">__proxy__</span></code> réad, is aistriúchán leisciúil é. Ag glaoch ar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>str () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>leis an aistriúchán leisciúil mar gheobhaidh an argóint teaghrán sa réigiún reatha.</p>\n<p>Le haghaidh tuilleadh sonraí faoi rudaí aistriúcháin leisciúil, féach ar an doiciméadach:doc: &lt;/topics/i18n/index&gt; idirnáisiúnaíon.</p>\n</section>\n<section id=\"useful-utility-functions\">\n<h3>feidhmeanna fóntais úsáideacha<a class=\"heading-anchor\" href=\"#useful-utility-functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Toisc go dtagann roinnt oibríochtaí teaghráin suas arís agus arís eile, seolann Django le cúpla feidhm úsáideach ar chóir go mbeadh sé níos éasca oibriú le rudaí sreangán agus bytestring.</p>\n<section id=\"conversion-functions\">\n<h4>Feidhmeanna tiontú<a class=\"heading-anchor\" href=\"#conversion-functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Tá cúpla feidhm sa mhodúl <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.encoding</span></code> atá áisiúil chun tiontú anall agus anall idir teaghráin agus bytestrings.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">smart_str</span> <span class=\"pre\">(s,</span> <span class=\"pre\">encoding='utf-8',</span> <span class=\"pre\">strings_only=false,</span> <span class=\"pre\">errors='strict')</span> <span class=\"pre\">``athraíonn</span> <span class=\"pre\">a</span> <span class=\"pre\">ionchur</span> <span class=\"pre\">go</span> <span class=\"pre\">sreang.</span> <span class=\"pre\">Sonraíonn</span> <span class=\"pre\">an</span> <span class=\"pre\">paraiméadar</span> <span class=\"pre\">``ionchód</span></code> an ionchódú ionchuir. (Mar shampla, úsáideann Django é seo go hinmheánach agus sonraí ionchuir foirme á bpróiseáil, nach bhféadfadh a bheith ionchódaithe UTF-8.) Mar thoradh ar an bparaiméadar strings_only, má tá sé socraithe go True, ní thiontófar uimhreacha Python, booleans agus <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> go sreang (coinníonn siad a gcineálacha bunaidh). Glacann an paraiméadar <code class=\"docutils literal notranslate\"><span class=\"pre\">earráidí</span> <span class=\"pre\">``aon</span> <span class=\"pre\">cheann</span> <span class=\"pre\">de</span> <span class=\"pre\">na</span> <span class=\"pre\">luachanna</span> <span class=\"pre\">a</span> <span class=\"pre\">nglacann</span> <span class=\"pre\">feidhm</span> <span class=\"pre\">``str</span> <span class=\"pre\">()</span></code> Python lena láimhseáil earráide.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">force_str</span> <span class=\"pre\">(s,</span> <span class=\"pre\">encoding='utf-8',</span> <span class=\"pre\">strings_only=false,</span> <span class=\"pre\">errors='strict')</span> <span class=\"pre\">``comhionann</span> <span class=\"pre\">le</span> <span class=\"pre\">``smart_str</span> <span class=\"pre\">()</span></code> i mbeagnach gach cás. Is é an difríocht nuair is é an chéad argóint a: ref: aistriúchán leisciúil &lt;lazy-translations&gt;`sampla. Cé go gcaomhnóidh ``smart_str () ``aistriúcháin leisciúla, cuireann ``force_str ()` iallach ar na rudaí sin chuig teaghrán (is cúis leis an aistriúchán tarlú). De ghnáth, beidh tú ag iarraidh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>smart_str () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a úsáid. Mar sin féin, tá <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>force_str () <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>úsáideach i gclibeanna teimpléad agus scagairí a bhfuil teaghrán aige go hiomlán* le bheith ag obair leo, ní amháin rud is féidir a thiontú go sreang.</p></li>\n<li><p>Tá <code class=\"docutils literal notranslate\"><span class=\"pre\">smart_bytes</span> <span class=\"pre\">(s,</span> <span class=\"pre\">encoding='utf-8',</span> <span class=\"pre\">strings_only=false,</span> <span class=\"pre\">errors='strict')</span> <span class=\"pre\">``go</span> <span class=\"pre\">bunúsach</span> <span class=\"pre\">a</span> <span class=\"pre\">mhalairt</span> <span class=\"pre\">de</span> <span class=\"pre\">``smart_str</span> <span class=\"pre\">()</span></code>. Cuireann sé iallach ar an gcéad argóint chuig bytestring. Tá an t-iompar céanna ag an bparaiméadar <code class=\"docutils literal notranslate\"><span class=\"pre\">strings_only</span></code> agus le haghaidh <code class=\"docutils literal notranslate\"><span class=\"pre\">smart_str</span> <span class=\"pre\">()</span> <span class=\"pre\">``agus</span> <span class=\"pre\">``force_str</span> <span class=\"pre\">()</span></code>. Is séimeantaic beagán difriúil é seo ó fheidhm 'str () <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>tógáilte Python, ach tá an difríocht ag teastáil i gcúpla áit laistigh de inmheánacha Django.</p></li>\n</ul>\n<p>De ghnáth, ní bheidh ort ach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>force_str () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a úsáid. Glaoigh air chomh luath agus is féidir ar aon sonraí ionchuir a d'fhéadfadh a bheith ina shreang nó ina mbeagán, agus as sin ar aghaidh, is féidir leat an toradh a chóireáil mar shreang i gcónaí.</p>\n</section>\n<section id=\"uri-and-iri-handling\">\n<span id=\"id1\"></span><h4>Láimhseáil URI agus IRI<a class=\"heading-anchor\" href=\"#uri-and-iri-handling\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Caithfidh creataí gréasáin déileáil le URLanna (ar cineál IRI iad). Riachtanas amháin a bhaineann le URLanna ná go ndéantar iad a ionchódú ag baint úsáide as carachtair ASCII amháin. &lt;3986&gt;Mar sin féin, i &lt;3987&gt;dtimpeallacht idirnáisiúnta, b'fhéidir go mbeidh ort URL a thógáil ó an:rfc: IRI `-- go han-scaoilte, a:rfc: `URI a d'fhéadfadh carachtair Unicode a bheith ann. Úsáid na feidhmeanna seo chun IRI a lua agus a thiontú go URI:</p>\n<ul class=\"simple\">\n<li><p>The <a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.encoding.iri_to_uri\" title=\"django.utils.encoding.iri_to_uri\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.utils.encoding.iri_to_uri()</span></code></a> function, which implements the\nconversion from IRI to URI as required by <span class=\"target\" id=\"index-2\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc3987.html#section-3.1\"><strong>RFC 3987 Section 3.1</strong></a>.</p></li>\n<li><p>Feidhmeanna:func: urllib.parse.quote agus:func: urllib.parse.quote_plus ó leabharlann caighdeánach Python.</p></li>\n</ul>\n<p>Tá cuspóirí beagán difriúil ag an dá ghrúpa feidhmeanna seo, agus tá sé tábhachtach iad a choinneáil díreach. De ghnáth, úsáidfeá <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>quote () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>ar na codanna aonair den chosán IRI nó URI ionas go ndéantar aon charachtair áirithe mar '&amp;' nó '% 'a ionchódú i gceart. Ansin, cuireann tú <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>iri_to_uri () <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>i bhfeidhm ar an IRI iomlán agus athraíonn sé aon charachtair neamh-ASCII go dtí na luachanna cearta ionchódaithe.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Go teicniúil, níl sé ceart a rá go gcuireann <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>iri_to_uri () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>an algartam iomlán i bhfeidhm i sonraíocht IRI. Ní dhéanann sé (fós) an chuid ionchódú ainm fearainn idirnáisiúnta den algartam.</p>\n</aside>\n<p>Ní athróidh an fheidhm <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>iri_to_uri () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>carachtair ASCII a cheadaítear ar shlí eile i URL. Mar sin, mar shampla, ní ionchódaítear an carachtar '%' a thuilleadh nuair a chuirtear ar aghaidh chuig <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>iri_to_uri () <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>. Ciallaíonn sé seo gur féidir leat URL iomlán a chur chuig an bhfeidhm seo agus ní chuirfidh sé praiseach ar an sreang fiosrúcháin nó aon rud mar sin.</p>\n<p>D'fhéadfadh sampla rudaí a shoiléiriú anseo:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">urllib.parse</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">quote</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.encoding</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">iri_to_uri</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">quote</span><span class=\"p\">(</span><span class=\"s2\">&quot;Paris &amp; Orléans&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;Paris%20%26%20Orl%C3%A9ans&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">iri_to_uri</span><span class=\"p\">(</span><span class=\"s2\">&quot;/favorites/François/</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"n\">quote</span><span class=\"p\">(</span><span class=\"s2\">&quot;Paris &amp; Orléans&quot;</span><span class=\"p\">))</span>\n<span class=\"go\">&#39;/favorites/Fran%C3%A7ois/Paris%20%26%20Orl%C3%A9ans&#39;</span>\n</code></pre></div>\n<p>Má fhéachann tú go cúramach, is féidir leat a fheiceáil nár luadh dúbailte an chuid a ghinigh le <code class=\"docutils literal notranslate\"><span class=\"pre\">quote</span> <span class=\"pre\">()</span> <span class=\"pre\">``sa</span> <span class=\"pre\">dara</span> <span class=\"pre\">sampla</span> <span class=\"pre\">nuair</span> <span class=\"pre\">a</span> <span class=\"pre\">cuireadh</span> <span class=\"pre\">chuig</span> <span class=\"pre\">`iri_to_uri</span> <span class=\"pre\">()</span></code>. Is gné an-tábhachtach agus úsáideach é seo. Ciallaíonn sé gur féidir leat do IRI a thógáil gan a bheith buartha faoi an bhfuil carachtair neamh-ASCII ann agus ansin, ag an deireadh, glaoch ar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>iri_to_uri () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>ar an toradh.</p>\n<p>Similarly, Django provides <a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.encoding.uri_to_iri\" title=\"django.utils.encoding.uri_to_iri\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.utils.encoding.uri_to_iri()</span></code></a> which\nimplements the conversion from URI to IRI as per <span class=\"target\" id=\"index-3\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc3987.html#section-3.2\"><strong>RFC 3987 Section 3.2</strong></a>.</p>\n<p>Sampla chun a thaispeáint:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.encoding</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">uri_to_iri</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">uri_to_iri</span><span class=\"p\">(</span><span class=\"s2\">&quot;/</span><span class=\"si\">%E</span><span class=\"s2\">2</span><span class=\"si\">%99%</span><span class=\"s2\">A5</span><span class=\"si\">%E</span><span class=\"s2\">2</span><span class=\"si\">%99%</span><span class=\"s2\">A5/?utf8=</span><span class=\"si\">%E</span><span class=\"s2\">2%9C%93&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;/♥♥/?utf8=✓&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">uri_to_iri</span><span class=\"p\">(</span><span class=\"s2\">&quot;%A9hello</span><span class=\"si\">%3F</span><span class=\"s2\">world&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;%A9hello%3Fworld&#39;</span>\n</code></pre></div>\n<p>Sa chéad shampla, ní luaitear na carachtair UTF-8. Sa dara ceann, fanann na hinchódaithe céatadáin gan athrú toisc go bhfuil siad lasmuigh den raon bailí UTF-8 nó go léiríonn siad carachtar forchoimeádta.</p>\n<p>Tá feidhmeanna <code class=\"docutils literal notranslate\"><span class=\"pre\">iri_to_uri</span> <span class=\"pre\">()</span> <span class=\"pre\">``agus</span> <span class=\"pre\">``uri_to_iri</span> <span class=\"pre\">()</span></code> idempotent, rud a chiallaíonn go bhfuil an méid seo a leanas fíor i gcónaí:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">iri_to_uri</span><span class=\"p\">(</span><span class=\"n\">iri_to_uri</span><span class=\"p\">(</span><span class=\"n\">some_string</span><span class=\"p\">))</span> <span class=\"o\">==</span> <span class=\"n\">iri_to_uri</span><span class=\"p\">(</span><span class=\"n\">some_string</span><span class=\"p\">)</span>\n<span class=\"n\">uri_to_iri</span><span class=\"p\">(</span><span class=\"n\">uri_to_iri</span><span class=\"p\">(</span><span class=\"n\">some_string</span><span class=\"p\">))</span> <span class=\"o\">==</span> <span class=\"n\">uri_to_iri</span><span class=\"p\">(</span><span class=\"n\">some_string</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Mar sin is féidir leat glaoch go sábháilte air arís agus arís eile ar an URI/IRI céanna gan fadhbanna luachana dúbailte a chur i mbaol.</p>\n</section>\n</section>\n</section>\n<section id=\"models\">\n<h2>Samhla<a class=\"heading-anchor\" href=\"#models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Toisc go gcuirtear gach teaghráin ar ais ón mbunachar sonraí mar rudaí str, beidh luachanna Unicode i réimsí samhail atá bunaithe ar charachtar (CharField, TextField, URLField, srl.) Nuair a aisghabhann Django sonraí ón mbunachar sonraí. Is é seo* i gcónaí* an cás, fiú dá bhféadfadh na sonraí oiriúnach i mbytestring ASCII.</p>\n<p>Is féidir leat dul isteach i mbytestrings agus tú ag cruthú samhail nó ag daonrú réimse, agus déanfaidh Django é a thiontú go teaghráin nuair is gá dó.</p>\n<section id=\"taking-care-in-get-absolute-url\">\n<h3>Ag tabhairt aire i <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_absolute_url () ``<a class=\"heading-anchor\" href=\"#taking-care-in-get-absolute-url\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ní féidir ach carachtair ASCII a bheith ag URLanna. Má tá URL á thógáil agat ó phíosaí sonraí a d'fhéadfadh a bheith neamh-ASCII, bí cúramach na torthaí a ionchódú ar bhealach atá oiriúnach do URL. Láimhseálann an fheidhm: Func: ~django.urls.reverse é seo duit go huathoibríoch.</p>\n<p>Má tá URL á thógáil agat de láimh (ie, <em>ní</em> ag baint úsáide as an bhfeidhm <code class=\"docutils literal notranslate\"><span class=\"pre\">reverse</span> <span class=\"pre\">()</span> <span class=\"pre\">`),</span> <span class=\"pre\">beidh</span> <span class=\"pre\">ort</span> <span class=\"pre\">aire</span> <span class=\"pre\">a</span> <span class=\"pre\">thabhairt</span> <span class=\"pre\">don</span> <span class=\"pre\">ionchódú</span> <span class=\"pre\">tú</span> <span class=\"pre\">féin.</span> <span class=\"pre\">Sa</span> <span class=\"pre\">chás</span> <span class=\"pre\">seo,</span> <span class=\"pre\">bain</span> <span class=\"pre\">úsáid</span> <span class=\"pre\">as</span> <span class=\"pre\">na</span> <span class=\"pre\">feidhmeanna</span> <span class=\"pre\">``iri_to_uri</span> <span class=\"pre\">()</span> <span class=\"pre\">``agus</span> <span class=\"pre\">``quote</span> <span class=\"pre\">()</span></code> a doiciméadaíodh <a class=\"reference internal\" href=\"#id1\">thuas</a>. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">urllib.parse</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">quote</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.encoding</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">iri_to_uri</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_absolute_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n    <span class=\"n\">url</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/person/</span><span class=\"si\">%s</span><span class=\"s2\">/?x=0&amp;y=0&quot;</span> <span class=\"o\">%</span> <span class=\"n\">quote</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">location</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> <span class=\"n\">iri_to_uri</span><span class=\"p\">(</span><span class=\"n\">url</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Tugann an fheidhm seo URL ionchódaithe i gceart fiú má tá <code class=\"docutils literal notranslate\"><span class=\"pre\">self.location</span></code> rud cosúil le “Thug Jack cuairt ar Pháras &amp; Orléans”. (Go deimhin, níl an glao <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>iri_to_uri () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>riachtanach go docht sa sampla thuas, toisc go mbainfí na carachtair neamh-ASCII go léir agus iad ag lua sa chéad líne.)</p>\n</section>\n</section>\n<section id=\"templates\">\n<h2>Teimpléid<a class=\"heading-anchor\" href=\"#templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Úsáid teaghráin agus teimpléid á chruthú de láimh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.template</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Template</span>\n\n<span class=\"n\">t2</span> <span class=\"o\">=</span> <span class=\"n\">Template</span><span class=\"p\">(</span><span class=\"s2\">&quot;This is a string template.&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>But the common case is to read templates from the filesystem. If your template\nfiles are not stored with a UTF-8 encoding, adjust the <a class=\"reference internal\" href=\"/ga/6.1/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a>\nsetting. The built-in <a class=\"reference internal\" href=\"/ga/6.1/topics/templates/#module-django.template.backends.django\" title=\"django.template.backends.django\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django</span></code></a> backend\nprovides the <code class=\"docutils literal notranslate\"><span class=\"pre\">'file_charset'</span></code> option to change the encoding used to read\nfiles from disk.</p>\n<p>Rialaíonn an socrú: SETTING: DEFAULT_CHARSET ionchódú teimpléid rindreáilte. Tá sé seo socraithe go UTF-8 de réir réamhshocraithe.</p>\n<section id=\"template-tags-and-filters\">\n<h3>Clibeanna teimpléad agus scagair<a class=\"heading-anchor\" href=\"#template-tags-and-filters\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cúpla leid le cuimhneamh agus do chlibeanna agus scagairí teimpléad féin á scríobh:</p>\n<ul class=\"simple\">\n<li><p>Cuir teaghráin ar ais i gcónaí ó mhodh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>render () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>chlib teimpléad agus ó scagairí teimpléad.</p></li>\n<li><p>Úsáid <code class=\"docutils literal notranslate\"><span class=\"pre\">force_str</span> <span class=\"pre\">()</span> <span class=\"pre\">``i</span> <span class=\"pre\">rogha</span> <span class=\"pre\">``smart_str</span> <span class=\"pre\">()</span></code> sna háiteanna seo. Tarlaíonn rindreáil clibeanna agus glaonna scagaire de réir mar a bhíonn an teimpléad á léiriú, mar sin níl aon bhuntáiste ann tiontú rudaí aistriúcháin leisciúil a chur siar ina teaghráin. Tá sé níos éasca oibriú amháin le teaghráin ag an bpointe sin.</p></li>\n</ul>\n</section>\n</section>\n<section id=\"files\">\n<span id=\"unicode-files\"></span><h2>Comhaid<a class=\"heading-anchor\" href=\"#files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Má tá sé ar intinn agat ligean d'úsáideoirí comhaid a uaslódáil, ní mór duit a chinntiú go bhfuil an timpeallacht a úsáidtear chun Django a reáchtáil cumraithe chun oibriú le hainmneacha comhaid nach Mura bhfuil do thimpeallacht cumraithe i gceart, beidh eisceachtaí UnicodeEncodeError agat agus tú ag sábháil comhaid le hainmneacha comhaid nó ábhar ina bhfuil carachtair neamh-ASCII.</p>\n<p>Athraíonn tacaíocht chórais chomhaid d'ainmneacha comhaid UTF-8 agus d'fhéadfadh sé go mbraitheann sé ar an gcomhshaol. Seiceáil do chumraíocht reatha i bhlaosc idirghníomhach Python trí rith:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">sys</span>\n\n<span class=\"n\">sys</span><span class=\"o\">.</span><span class=\"n\">getfilesystemencoding</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Ba chóir go n-aschur sé seo “UTF-8&quot;.</p>\n<p>Tá an t-athróg comhshaoil LANG freagrach as an ionchódú a bhfuil súil leis a shocrú ar ardáin Unix. Téigh i gcomhairle leis na cáipéisíocht do do chóras oibriúcháin agus do fhreastalaí feidhmchláir chun an comhréir agus an suíomh cuí Féach na:doc: /howto/deployment/wsgi/modwsgi le haghaidh samplaí.</p>\n<p>I do thimpeallacht forbartha, b'fhéidir go mbeidh ort socrú a chur le do <code class=\"docutils literal notranslate\"><span class=\"pre\">~.bashrc</span></code> atá cosúil le:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"nb\">export</span><span class=\"w\"> </span><span class=\"nv\">LANG</span><span class=\"o\">=</span><span class=\"s2\">&quot;en_US.UTF-8&quot;</span>\n</code></pre></div>\n</section>\n<section id=\"form-submission\">\n<h2>Foirm aighneacht<a class=\"heading-anchor\" href=\"#form-submission\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Is réimse deacair é aighneacht foirme HTML. Níl aon ráthaíocht ann go mbeidh faisnéis ionchódú san aighneacht, rud a chiallaíonn go bhféadfadh go mbeadh ar an gcreat tuairim a dhéanamh ar ionchódú sonraí curtha isteach.</p>\n<p>Glacann Django cur chuige “leisciúil” maidir le sonraí foirme a dhíchódú. Ní dhíchódaítear na sonraí i réad HttpRequest` ach nuair a rochtaíonn tú air. Déanta na fírinne, ní dhíchódaítear an chuid is mó de na sonraí ar chor ar bith. Níl aon díchódú i bhfeidhm orthu ach na struchtúir sonraí HttpRequest.get` agus <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.post</span> <span class=\"pre\">``.</span> <span class=\"pre\">Tabharfaidh</span> <span class=\"pre\">an</span> <span class=\"pre\">dá</span> <span class=\"pre\">réimse</span> <span class=\"pre\">sin</span> <span class=\"pre\">a</span> <span class=\"pre\">gcuid</span> <span class=\"pre\">baill</span> <span class=\"pre\">ar</span> <span class=\"pre\">ais</span> <span class=\"pre\">mar</span> <span class=\"pre\">shonraí</span> <span class=\"pre\">Unicode.</span> <span class=\"pre\">Tugann</span> <span class=\"pre\">gach</span> <span class=\"pre\">tréithe</span> <span class=\"pre\">agus</span> <span class=\"pre\">modh</span> <span class=\"pre\">eile</span> <span class=\"pre\">``HttpRequest</span></code> sonraí ar ais go díreach mar a chuir an cliant isteach iad.</p>\n<p>De réir réamhshocraithe, úsáidtear an socrú: setting: DEFAULT_CHARSET mar an ionchódú glactha le haghaidh sonraí foirme. Más gá duit é seo a athrú le haghaidh foirm áirithe, is féidir leat an tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">encoding</span></code> a shocrú ar shampla HttpRequest`. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">some_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"c1\"># We know that the data must be encoded as KOI8-R (for some reason).</span>\n    <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">encoding</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;koi8-r&quot;</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<p>Is féidir leat an t-ionchódú a athrú fiú tar éis duit rochtain a fháil ar <code class=\"docutils literal notranslate\"><span class=\"pre\">Request.get</span></code> nó <code class=\"docutils literal notranslate\"><span class=\"pre\">request.post</span></code>, agus úsáidfidh gach rochtain ina dhiaidh sin an t-ionchódú nua.</p>\n<p>Ní chaithfidh mórchuid na bhforbróirí a bheith buartha faoi ionchódú foirme a athrú, ach is gné úsáideach é seo d'iarratais a labhraíonn le córais oidhreachta nach féidir leat a n-ionchódú a rialú.</p>\n<p>Ní dhíchódálann Django sonraí uaslódála comhad, toisc go ndéileálfar leis na sonraí sin de ghnáth mar bhailiúcháin béite, seachas teaghráin. Athródh aon díchódú uathoibríoch ann brí sruth na mbetaí.</p>\n</section>","rootId":"unicode-data","toc":[{"title":"An bunachar sonraí a chruthú","anchor":"creating-the-database","children":[]},{"title":"Láimhseáil teaghrán gin","anchor":"general-string-handling","children":[{"title":"Teagáin aistrithe","anchor":"translated-strings","children":[]},{"title":"feidhmeanna fóntais úsáideacha","anchor":"useful-utility-functions","children":[{"title":"Feidhmeanna tiontú","anchor":"conversion-functions","children":[]},{"title":"Láimhseáil URI agus IRI","anchor":"uri-and-iri-handling","children":[]}]}]},{"title":"Samhla","anchor":"models","children":[{"title":"Ag tabhairt aire i ``get_absolute_url () ``","anchor":"taking-care-in-get-absolute-url","children":[]}]},{"title":"Teimpléid","anchor":"templates","children":[{"title":"Clibeanna teimpléad agus scagair","anchor":"template-tags-and-filters","children":[]}]},{"title":"Comhaid","anchor":"files","children":[]},{"title":"Foirm aighneacht","anchor":"form-submission","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Tagairt API","url":"/ga/6.1/ref/"}],"prev":{"docname":"ref/template-response","title":"TemplateResponse agus SimpleTemplateResponse","url":"/ga/6.1/ref/template-response/"},"next":{"docname":"ref/urlresolvers","title":"Feidhmeanna fóntais ``django.urls ``","url":"/ga/6.1/ref/urlresolvers/"},"formats":{"html":"/ga/6.1/ref/unicode/","markdown":"/ga/6.1/ref/unicode.md","json":"/ga/6.1/ref/unicode.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/unicode.txt","official":"https://docs.djangoproject.com/ga/6.1/ref/unicode/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}