<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>KB-2372 Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>KB-2372 Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions</link><pubDate>Tue, 17 Mar 2026 15:42:17 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Current Revision posted to Appian Knowledge Base by pauline.delacruz on 3/17/2026 3:42:17 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1ir89gqsb0" data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behavior of the functions&amp;nbsp;&lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_left.html"&gt;left()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_len.html"&gt;len()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_lenb.html"&gt;lenb()&lt;/a&gt;&lt;/code&gt;&amp;nbsp;and &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_leftb.html"&gt;leftb()&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb1" data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using &lt;code&gt;left()&lt;/code&gt;, &lt;code&gt;leftb()&lt;/code&gt;, &lt;code&gt;len()&lt;/code&gt; and &lt;code&gt;lenb()&lt;/code&gt;, there is unexpected behavior in how these functions count certain characters, such as emojis.&lt;/p&gt;
&lt;p data-renderer-start-pos="854"&gt;&lt;img style="max-height:240px;width:auto;" alt=" " src="/resized-image/__size/0x480/__key/communityserver-wikis-components-files/00-00-00-00-11/image_2D00_20250514_2D00_061555.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb2" data-renderer-start-pos="844"&gt;Cause&lt;/h2&gt;
&lt;p data-renderer-start-pos="998"&gt;The following results demonstrate that currently &lt;code&gt;left()&lt;/code&gt; and &lt;code&gt;leftb()&lt;/code&gt; do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-renderer-start-pos="1426"&gt;As a result of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb3" data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;Check the string&amp;rsquo;s byte length using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;If it exceeds the limit, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;Repeat step 2 until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;b&gt;Note&lt;/b&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb4" data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: March 2026&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: integration&lt;/div&gt;
</description></item><item><title>KB-2372 Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions/revision/10</link><pubDate>Tue, 17 Mar 2026 15:42:17 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Revision 10 posted to Appian Knowledge Base by pauline.delacruz on 3/17/2026 3:42:17 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1ir89gqsb0" data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behavior of the functions&amp;nbsp;&lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_left.html"&gt;left()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_len.html"&gt;len()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_lenb.html"&gt;lenb()&lt;/a&gt;&lt;/code&gt;&amp;nbsp;and &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_leftb.html"&gt;leftb()&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb1" data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using &lt;code&gt;left()&lt;/code&gt;, &lt;code&gt;leftb()&lt;/code&gt;, &lt;code&gt;len()&lt;/code&gt; and &lt;code&gt;lenb()&lt;/code&gt;, there is unexpected behavior in how these functions count certain characters, such as emojis.&lt;/p&gt;
&lt;p data-renderer-start-pos="854"&gt;&lt;img style="max-height:240px;width:auto;" alt=" " src="/resized-image/__size/0x480/__key/communityserver-wikis-components-files/00-00-00-00-13/image_2D00_20250514_2D00_061555.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb2" data-renderer-start-pos="844"&gt;Cause&lt;/h2&gt;
&lt;p data-renderer-start-pos="998"&gt;The following results demonstrate that currently &lt;code&gt;left()&lt;/code&gt; and &lt;code&gt;leftb()&lt;/code&gt; do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-renderer-start-pos="1426"&gt;As a result of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb3" data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;Check the string&amp;rsquo;s byte length using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;If it exceeds the limit, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;Repeat step 2 until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;b&gt;Note&lt;/b&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb4" data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: March 2026&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: integration&lt;/div&gt;
</description></item><item><title>[DRAFT SUPP-1053] KB-XXXX Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions/revision/9</link><pubDate>Wed, 14 May 2025 21:06:06 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Revision 9 posted to Appian Knowledge Base by pauline.delacruz on 5/14/2025 9:06:06 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1ir89gqsb0" data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behavior of the functions&amp;nbsp;&lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_left.html"&gt;left()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_len.html"&gt;len()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_lenb.html"&gt;lenb()&lt;/a&gt;&lt;/code&gt;&amp;nbsp;and &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_leftb.html"&gt;leftb()&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb1" data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using &lt;code&gt;left()&lt;/code&gt;, &lt;code&gt;leftb()&lt;/code&gt;, &lt;code&gt;len()&lt;/code&gt; and &lt;code&gt;lenb()&lt;/code&gt;, there is unexpected behavior in how these functions count certain characters, such as emojis.&lt;/p&gt;
&lt;p data-renderer-start-pos="854"&gt;&lt;img style="max-height:240px;width:auto;" alt=" " src="/resized-image/__size/0x480/__key/communityserver-wikis-components-files/00-00-00-00-13/image_2D00_20250514_2D00_061555.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb2" data-renderer-start-pos="844"&gt;Cause&lt;/h2&gt;
&lt;p data-renderer-start-pos="998"&gt;The following results demonstrate that currently &lt;code&gt;left()&lt;/code&gt; and &lt;code&gt;leftb()&lt;/code&gt; do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-renderer-start-pos="1426"&gt;Because of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb3" data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;Check the string&amp;rsquo;s byte length using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;If it exceeds the limit, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;Repeat step 2 until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;b&gt;Note&lt;/b&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb4" data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: May 2025&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>[DRAFT SUPP-1053] KB-XXXX Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions/revision/8</link><pubDate>Wed, 14 May 2025 21:03:19 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Revision 8 posted to Appian Knowledge Base by pauline.delacruz on 5/14/2025 9:03:19 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1ir89gqsb0" data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behavior of the functions&amp;nbsp;&lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest1/fnc_text_left.html"&gt;left()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_len.html"&gt;len()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_lenb.html"&gt;lenb()&lt;/a&gt;&lt;/code&gt;&amp;nbsp;and &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_leftb.html"&gt;leftb()&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p data-renderer-start-pos="741"&gt;&lt;code&gt;left()&lt;/code&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;code&gt;leftb()&lt;/code&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;code&gt;len()&lt;/code&gt;&lt;span&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;code&gt;lenb()&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb1" data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using &lt;code&gt;left()&lt;/code&gt;, &lt;code&gt;leftb()&lt;/code&gt;, &lt;code&gt;len()&lt;/code&gt; and &lt;code&gt;lenb()&lt;/code&gt;, there is unexpected behavior in how these functions count certain characters, such as emojis.&lt;/p&gt;
&lt;p data-renderer-start-pos="854"&gt;&lt;img style="max-height:240px;width:auto;" alt=" " src="/resized-image/__size/0x480/__key/communityserver-wikis-components-files/00-00-00-00-13/image_2D00_20250514_2D00_061555.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb2" data-renderer-start-pos="844"&gt;Cause&lt;/h2&gt;
&lt;p data-renderer-start-pos="998"&gt;The following results demonstrate that currently &lt;code&gt;left()&lt;/code&gt; and &lt;code&gt;leftb()&lt;/code&gt; do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-renderer-start-pos="1426"&gt;Because of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb3" data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;Check the string&amp;rsquo;s byte length using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;If it exceeds the limit, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;Repeat step 2 until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;b&gt;Note&lt;/b&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb4" data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: May 2025&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>[DRAFT SUPP-1053] KB-XXXX Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions/revision/7</link><pubDate>Wed, 14 May 2025 21:02:07 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Revision 7 posted to Appian Knowledge Base by pauline.delacruz on 5/14/2025 9:02:07 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1ir89gqsb0" data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behavior of the functions&amp;nbsp;&lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest1/fnc_text_left.html"&gt;left()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_len.html"&gt;len()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_lenb.html"&gt;lenb()&lt;/a&gt;&lt;/code&gt;&amp;nbsp;and &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_leftb.html"&gt;leftb()&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb1" data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using &lt;code&gt;left()&lt;/code&gt;, &lt;code&gt;leftb()&lt;/code&gt;, &lt;code&gt;len()&lt;/code&gt; and &lt;code&gt;lenb()&lt;/code&gt;, there is unexpected behavior in how these functions count certain characters, such as emojis.&lt;/p&gt;
&lt;p data-renderer-start-pos="854"&gt;&lt;img style="max-height:240px;width:auto;" alt=" " src="/resized-image/__size/0x480/__key/communityserver-wikis-components-files/00-00-00-00-13/image_2D00_20250514_2D00_061555.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb2" data-renderer-start-pos="844"&gt;Cause&lt;/h2&gt;
&lt;p data-renderer-start-pos="998"&gt;The following results demonstrate that currently &lt;code&gt;left()&lt;/code&gt; and &lt;code&gt;leftb()&lt;/code&gt; do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-renderer-start-pos="1426"&gt;Because of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb3" data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;Check the string&amp;rsquo;s byte length using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;If it exceeds the limit, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;Repeat step 2 until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;b&gt;Note&lt;/b&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb4" data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: May 2025&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>[DRAFT SUPP-1053] KB-XXXX Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions/revision/6</link><pubDate>Wed, 14 May 2025 21:01:13 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Revision 6 posted to Appian Knowledge Base by pauline.delacruz on 5/14/2025 9:01:13 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1ir89gqsb0" data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behavior of the functions&amp;nbsp;&lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest1/fnc_text_left.html"&gt;left()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_len.html"&gt;len()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_lenb.html"&gt;lenb()&lt;/a&gt;&lt;/code&gt;&amp;nbsp;and &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_leftb.html"&gt;leftb()&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb1" data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using &lt;code&gt;left()&lt;/code&gt;, &lt;code&gt;leftb()&lt;/code&gt;, &lt;code&gt;len()&lt;/code&gt; and &lt;code&gt;lenb()&lt;/code&gt;, there is unexpected behavior in how these functions count certain characters, such as emojis.&lt;/p&gt;
&lt;p data-renderer-start-pos="854"&gt;&lt;img style="max-height:240px;width:auto;" alt=" " src="/resized-image/__size/0x480/__key/communityserver-wikis-components-files/00-00-00-00-13/image_2D00_20250514_2D00_061555.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb2" data-renderer-start-pos="844"&gt;Cause&lt;/h2&gt;
&lt;p data-renderer-start-pos="998"&gt;The following results demonstrate that currently &lt;code&gt;left()&lt;/code&gt; and &lt;code&gt;leftb()&lt;/code&gt; do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-renderer-start-pos="1426"&gt;Because of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb3" data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;Check the string&amp;rsquo;s byte length using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;If it exceeds the limit, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;Repeat step 2 until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;b&gt;Note&lt;/b&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb4" data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: May 2025&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>[DRAFT SUPP-1053] KB-XXXX Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions/revision/5</link><pubDate>Wed, 14 May 2025 20:59:44 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Revision 5 posted to Appian Knowledge Base by pauline.delacruz on 5/14/2025 8:59:44 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1ir89gqsb0" data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behavior of the functions&amp;nbsp;&lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest1/fnc_text_left.html"&gt;left()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_len.html"&gt;len()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_lenb.html"&gt;lenb()&lt;/a&gt;&lt;/code&gt;&amp;nbsp;and &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_leftb.html"&gt;leftb()&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb1" data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using &lt;code&gt;left()&lt;/code&gt;, &lt;code&gt;leftb()&lt;/code&gt;, &lt;code&gt;len()&lt;/code&gt; and &lt;code&gt;lenb()&lt;/code&gt;, there is unexpected behavior in how these functions count certain characters, such as emojis.&lt;/p&gt;
&lt;p data-renderer-start-pos="854"&gt;&lt;img style="max-height:240px;width:auto;" alt=" " src="/resized-image/__size/0x480/__key/communityserver-wikis-components-files/00-00-00-00-13/image_2D00_20250514_2D00_061555.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb2" data-renderer-start-pos="844"&gt;Cause&lt;/h2&gt;
&lt;p data-renderer-start-pos="998"&gt;The following results demonstrate that currently &lt;code&gt;left()&lt;/code&gt; and &lt;code&gt;leftb()&lt;/code&gt; do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-renderer-start-pos="1426"&gt;Because of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb3" data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;&lt;strong data-renderer-mark="true"&gt;Check the string&amp;rsquo;s byte length&lt;/strong&gt; using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;&lt;strong data-renderer-mark="true"&gt;If it exceeds the limit&lt;/strong&gt;, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;&lt;strong data-renderer-mark="true"&gt;Repeat step 2&lt;/strong&gt; until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;strong data-renderer-mark="true"&gt;Limitations&lt;/strong&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 id="mcetoc_1ir89gqsb4" data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: May 2025&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>[DRAFT SUPP-1053] KB-XXXX Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions/revision/4</link><pubDate>Tue, 13 May 2025 21:44:29 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Revision 4 posted to Appian Knowledge Base by pauline.delacruz on 5/13/2025 9:44:29 PM&lt;br /&gt;
&lt;h2 data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behavior of the functions&amp;nbsp;&lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest1/fnc_text_left.html"&gt;left()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_len.html"&gt;len()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_lenb.html"&gt;lenb()&lt;/a&gt;&lt;/code&gt;&amp;nbsp;and &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_leftb.html"&gt;leftb()&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using &lt;code&gt;left()&lt;/code&gt;, &lt;code&gt;leftb()&lt;/code&gt;, &lt;code&gt;len()&lt;/code&gt; and &lt;code&gt;lenb()&lt;/code&gt;, there is unexpected behavior in how these functions count certain characters, such as emojis.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="844"&gt;Cause&lt;/h2&gt;
&lt;p data-renderer-start-pos="998"&gt;The following results demonstrate that currently &lt;code&gt;left()&lt;/code&gt; and &lt;code&gt;leftb()&lt;/code&gt; do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-renderer-start-pos="1426"&gt;Because of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;&lt;strong data-renderer-mark="true"&gt;Check the string&amp;rsquo;s byte length&lt;/strong&gt; using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;&lt;strong data-renderer-mark="true"&gt;If it exceeds the limit&lt;/strong&gt;, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;&lt;strong data-renderer-mark="true"&gt;Repeat step 2&lt;/strong&gt; until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;strong data-renderer-mark="true"&gt;Limitations&lt;/strong&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: May 2025&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>[DRAFT SUPP-1053] KB-XXXX Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions/revision/3</link><pubDate>Tue, 13 May 2025 21:44:00 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Revision 3 posted to Appian Knowledge Base by pauline.delacruz on 5/13/2025 9:44:00 PM&lt;br /&gt;
&lt;h2 data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behavior of the functions&amp;nbsp;&lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest1/fnc_text_left.html"&gt;left()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_len.html"&gt;len()&lt;/a&gt;,&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_lenb.html"&gt;lenb()&lt;/a&gt;&lt;/code&gt;&amp;nbsp;and &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_leftb.html"&gt;leftb()&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using &lt;code&gt;left()&lt;/code&gt;, &lt;code&gt;leftb()&lt;/code&gt;, &lt;code&gt;len()&lt;/code&gt; and &lt;code&gt;lenb()&lt;/code&gt;, there is unexpected behavior in how these functions count certain characters, such as emojis.&lt;/p&gt;
&lt;p data-renderer-start-pos="998"&gt;The following results demonstrate that currently &lt;code&gt;left()&lt;/code&gt; and &lt;code&gt;leftb()&lt;/code&gt; do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-renderer-start-pos="1426"&gt;Because of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;&lt;strong data-renderer-mark="true"&gt;Check the string&amp;rsquo;s byte length&lt;/strong&gt; using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;&lt;strong data-renderer-mark="true"&gt;If it exceeds the limit&lt;/strong&gt;, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;&lt;strong data-renderer-mark="true"&gt;Repeat step 2&lt;/strong&gt; until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;strong data-renderer-mark="true"&gt;Limitations&lt;/strong&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: May 2025&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>[DRAFT SUPP-1053] KB-XXXX Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions/revision/2</link><pubDate>Tue, 13 May 2025 21:39:20 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Revision 2 posted to Appian Knowledge Base by pauline.delacruz on 5/13/2025 9:39:20 PM&lt;br /&gt;
&lt;h2 data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behaviour of &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest1/fnc_text_left.html"&gt;left()&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href="https://docs.appian.com/suite/help/latest/fnc_text_leftb.html"&gt;leftb()&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using &lt;code&gt;left()&lt;/code&gt;, &lt;code&gt;leftb()&lt;/code&gt;, &lt;code&gt;len()&lt;/code&gt; and &lt;code&gt;lenb()&lt;/code&gt;, there is unexpected behavior in how these functions count certain characters, (such as emojis).&lt;/p&gt;
&lt;p data-renderer-start-pos="998"&gt;The following results demonstrate that currently left() and leftb() do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;div class="code-block css-19e6trp"&gt;&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p data-renderer-start-pos="1426"&gt;Because of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;&lt;strong data-renderer-mark="true"&gt;Check the string&amp;rsquo;s byte length&lt;/strong&gt; using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;&lt;strong data-renderer-mark="true"&gt;If it exceeds the limit&lt;/strong&gt;, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;&lt;strong data-renderer-mark="true"&gt;Repeat step 2&lt;/strong&gt; until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;strong data-renderer-mark="true"&gt;Limitations&lt;/strong&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: May 2025&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>[DRAFT SUPP-1053] KB-XXXX Known unexpected behaviour of left() and leftb() functions</title><link>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions/revision/1</link><pubDate>Tue, 13 May 2025 21:34:39 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ce93003d-a43b-423c-a043-2b5fb049173f</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3676/kb-2372-known-unexpected-behaviour-of-left-and-leftb-functions#comments</comments><description>Revision 1 posted to Appian Knowledge Base by pauline.delacruz on 5/13/2025 9:34:39 PM&lt;br /&gt;
&lt;h2 data-renderer-start-pos="732"&gt;Purpose&lt;/h2&gt;
&lt;p data-renderer-start-pos="741"&gt;The purpose of this article is to demonstrate the current unexpected behaviour of left() and leftb().&lt;/p&gt;
&lt;h2 data-renderer-start-pos="844"&gt;Symptoms&lt;/h2&gt;
&lt;p data-renderer-start-pos="854"&gt;When using left(), leftb(), len() and lenb(), there is unexpected behaviour in how these functions count certain characters, (such as emojis).&lt;/p&gt;
&lt;p data-renderer-start-pos="998"&gt;The Following results demonstrate that currently left() and leftb() do not provide the expected outputs based on their function documentation:&lt;/p&gt;
&lt;div class="code-block css-19e6trp"&gt;
&lt;div class="css-9n57oc"&gt;
&lt;div class="css-v2tmjh"&gt;
&lt;div&gt;&lt;span class="css-bwxjrz"&gt;&lt;span class="_1e0c1o8l _1o9zidpf _vyfuvuon _vwz4kb7n _1szv15vq _1tly15vq _rzyw1osq _17jb1osq _1ksvoz0e _3se1x1jp _re2rglyw _1veoyfq0 _1kg81r31 _jcxd1r8n _gq0g1onz _1trkwc43" data-vc="icon-undefined"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span class="css-bwxjrz"&gt;&lt;span class="_1e0c1o8l _1o9zidpf _vyfuvuon _vwz4kb7n _1szv15vq _1tly15vq _rzyw1osq _17jb1osq _1ksvoz0e _3se1x1jp _re2rglyw _1veoyfq0 _1kg81r31 _jcxd1r8n _gq0g1onz _1trkwc43" data-vc="icon-undefined"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;span class="prismjs _2rkoglpi _1dqoglyw _1wyb1crf _k48pi7a9 _1e0c1txw _vwz4gktf _1reo1wug _o572qvpr _1eimjvyg _bfhktkvp _syaz1fxt _ect41odn _1ozdn7od _7xinn7od _t7aun7od _1v15u2gc _ilvcu2gc _m29uu2gc _17wyu2gc _pn28u2gc _gz9fu2gc _1hmyegat _vblregat _vbulegat _wozj1yev _1agb1yev _lkm81yev _tv41hkgb _1hmimyb0 _1ra01n1a _1d4j1y44 _1f8gstnw _1pzyb3bt _j1w0ww7y _13cdh2mm _15ba126e _zvy9f705 _qcxof705 _14y71a66 _j0l11wug _1weckb7n _1na21hna _1xx2grf3 _x7c815vq _lh0y15vq _1m3815vq _qk1e15vq _12l6ysn8 _uga3ysn8 _mx8b7mnp _1kr87mnp _xo19t94y _1bemt94y _nalpstnw _151dstnw _1exb1q9c _1hgu1q9c _1mgnt94y _nhket94y _h909m7j4 _scgayz1z _ipl81e17 _jeky1l04 _1gec1a66 _1gx21e5h _1ls01ule _vm2c1rh5 _12ok1rh5 _rude1ule _1q16glyw _1io6glyw _juomusic _lcwuusic _1552u2gc _12afu2gc _28ddu2gc _1i8zu2gc _12tu1a66 _zu0j1a66 _euyxusvi _cahfusvi _zhnuidpf _1amdidpf _mbgcpf9b _bu7zpf9b _131n1giz _gy101giz _1wfuwrk5 _16kzwrk5 _9kk3moej _cjus1w1g _9k2r1m30 _nhmw1m30 _yl021m30 _eiht5x2v _t9zb5x2v _mqok1w1g _3hsg1w1g _i7ngn7od _9wu1fb2s _1xcoh55r _1t361fxt _137bh55r _1k7d1fxt _97lipnps _12nh9lu1 _1g0517qg _i2ig10m5 _326z1fxt _113p131l _1n6tpnps _tgu817qg _1k47pnps _g0lx1fxt _ys4e131l _7gp8h55r _1yvq10m5 _1vww10m5 _1rju10m5 _1v0lh55r _wmyy17qg _748n17qg _1mfn17qg _1d7e17qg _p2vr17qg _19o610m5 _kxov17qg _1np517qg _m2f517qg _1b9tpnps _1tq6pnps _1rd2pnps _1pbkpnps _k3lipnps _13zt131l _2g12fb2s _k86b10m5 _b5iy131l _gti3131l _1f0gpnps _9d3e17qg _qdiapnps _72uvpnps _13dgkb7n _170714ej _1i3h1txw _1huoidpf _1a9lidpf _20bqidpf _1oggidpf _bympidpf _9nnjidpf" data-code-lang="" data-ds--code--code-block=""&gt;&lt;code class="language-"&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="1"&gt;&lt;/span&gt;&lt;span class=""&gt;len() counts an emoji as 1 character (expected)
&lt;/span&gt;&lt;span class="comment linenumber ds-line-number" data-ds--line-number="2"&gt;&lt;/span&gt;lenb() counts an emoji as 4 bytes (expected)
&lt;span class="comment linenumber ds-line-number" data-ds--line-number="3"&gt;&lt;/span&gt;left() counts an emoji as 2 characters (unexpected, expected 1)
&lt;span class="comment linenumber ds-line-number" data-ds--line-number="4"&gt;&lt;/span&gt;leftb() counts an emoji as 2 bytes (unexpected, expected be 4)
&lt;span class="comment linenumber ds-line-number" data-ds--line-number="5"&gt;&lt;/span&gt;left and leftb() always ouput the same result (2 in this case)&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p data-renderer-start-pos="1426"&gt;Because of this inconsistency, it is not possible to truncate a length of text to a specific number of bytes.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="1537"&gt;Workaround&lt;/h2&gt;
&lt;ol class="ak-ol" start="1" data-indent-level="1"&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1551"&gt;&lt;strong data-renderer-mark="true"&gt;Check the string&amp;rsquo;s byte length&lt;/strong&gt; using &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;lenb(ri!text)&lt;/code&gt;. If it&amp;#39;s within the limit, return the string.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1651"&gt;&lt;strong data-renderer-mark="true"&gt;If it exceeds the limit&lt;/strong&gt;, use &lt;code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rko1sit _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true"&gt;regexfirstmatch()&lt;/code&gt; to trim one character at a time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-renderer-start-pos="1734"&gt;&lt;strong data-renderer-mark="true"&gt;Repeat step 2&lt;/strong&gt; until the byte length is within the limit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-renderer-start-pos="1794"&gt;&lt;strong data-renderer-mark="true"&gt;Limitations&lt;/strong&gt;: This method fails if more than &lt;strong data-renderer-mark="true"&gt;529&lt;/strong&gt; characters need to be removed (due to recursion limits). Emoji-heavy messages are more likely to cause this issue.&lt;/p&gt;
&lt;h2 data-renderer-start-pos="1958"&gt;Affected Versions&lt;/h2&gt;
&lt;p data-renderer-start-pos="1977"&gt;This article applies to all versions of Appian.&lt;/p&gt;
&lt;p data-renderer-start-pos="2026"&gt;Last Reviewed: May 2025&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>