<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="308562" data-post-id="308562">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mruoss" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mruoss/120/34561_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mruoss
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="adamu" data-post="11" data-topic="59759">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamu/48/31482_2.png" class="avatar"> adamu:</div>
<blockquote>
<p>What are you trying to do with that information?</p>
</blockquote>
</aside>
<p>Decide how to encode them. <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"><br>
<a href="https://github.com/ufirstgroup/ymlr/pull/98" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/ufirstgroup/ymlr/pull/98</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="308562" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/is-there-a-way-to-escape-escape-characters-i-e-turn-u2003-u2003/59759/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-308562" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="308562"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="308564" data-post-id="308564">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="benwilson512" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/benwilson512/120/1457_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  benwilson512
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Craft GraphQL APIs in Elixir with Absinthe</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Aren’t all Unicode “characters” printable by definition? What other encoding are you trying to convert them to?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="308564" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/is-there-a-way-to-escape-escape-characters-i-e-turn-u2003-u2003/59759/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-308564" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="308564"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="308566" data-post-id="308566">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mruoss" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mruoss/120/34561_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mruoss
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Maybe I’m using wrong terms. But a yaml encoder needs to encode different chars differently. For example: normal letters, digits or \n or \t can be left as they are. The bell character (\u0007) can be encoded as \u0007 or \a. Others need to be encoded in the form \u0033 or \x33.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="308566" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/is-there-a-way-to-escape-escape-characters-i-e-turn-u2003-u2003/59759/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-308566" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="308566"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="308571" data-post-id="308571">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="benwilson512" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/benwilson512/120/1457_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  benwilson512
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Craft GraphQL APIs in Elixir with Absinthe</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a href="https://en.wikipedia.org/wiki/YAML#:~:text=YAML%20accepts%20the%20entire%20Unicode,%2D16%20or%20UTF%2D32" class="inline-onebox" rel="nofollow">YAML - Wikipedia</a>.</p>
<p>If you want to produce “ascii only” yaml and escape everything else that’s fine, but it seems like yaml technically supports the full UTF8 spectrum. My overall point is that I would pick a well known subset of UTF8 like ASCII and then build your filter on top of that. All ASCII chars go in as is, non ascii are use the escaped utf8 form.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="308571" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/is-there-a-way-to-escape-escape-characters-i-e-turn-u2003-u2003/59759/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-308571" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="308571"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="308584" data-post-id="308584">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="adamu" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamu/120/31482_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  adamu
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>From looking at the YAML spec, it looks like:</p>
<p>Escape anything that has a C escape sequences to the form listed in the spec.</p>
<p>Then escape anything that’s explicitly not in the ranges the spec defines as printable with <code>\u</code>.</p>
<p>For each codepoint:</p>
<ol>
<li>In printable range? Leave it alone.</li>
<li>Has c escape? Convert to that.</li>
<li>Escape with \u</li>
</ol>
<p>I think this is YAML-specific behaviour, so Elixir doesn’t have a default that does it, unless it’s provided by a YAML library, but it looks like that’s what you’re making <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://yaml.org/spec/1.2.2/#chapter-5-character-productions">
  <header class="source">
      <img src="https://yaml.org/favicon.svg" class="site-icon" alt="" width="" height="">

      <a href="https://yaml.org/spec/1.2.2/#chapter-5-character-productions" target="_blank" rel="noopener nofollow ugc">yaml.org</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://yaml.org/spec/1.2.2/#chapter-5-character-productions" target="_blank" rel="noopener nofollow ugc">Chapter 5. Character Productions - YAML Ain’t Markup Language (YAML™) revision...</a></h3>

  <p>Copyright presently by YAML Language Development Team1 Copyright 2001-2009 by Oren Ben-Kiki, Clark Evans, Ingy döt Net</p>


  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<pre data-code-wrap="elixir"><code class="lang-elixir">[1] c-printable ::=
                         # 8 bit
    x09                  # Tab (\t)
  | x0A                  # Line feed (LF \n)
  | x0D                  # Carriage Return (CR \r)
  | [x20-x7E]            # Printable ASCII
                         # 16 bit
  | x85                  # Next Line (NEL)
  | [xA0-xD7FF]          # Basic Multilingual Plane (BMP)
  | [xE000-xFFFD]        # Additional Unicode Areas
  | [x010000-x10FFFF]    # 32 bit
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="308584" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/is-there-a-way-to-escape-escape-characters-i-e-turn-u2003-u2003/59759/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-308584" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="308584"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="308640" data-post-id="308640">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mruoss" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mruoss/120/34561_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mruoss
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="adamu" data-post="16" data-topic="59759">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamu/48/31482_2.png" class="avatar"> adamu:</div>
<blockquote>
<ol>
<li>In printable range? Leave it alone.</li>
<li>Has c escape? Convert to that.</li>
<li>Escape with \u</li>
</ol>
</blockquote>
</aside>
<p>Yes, that’s almost exactly what I’m doing in the PR linked above. However, there are some things to consider. Let’s take char <code>\u0085</code>. It has an escape character in YAML (<code>\N</code>). But it is also in the <code>c-printable</code> range. So while theoretically it can be left alone, I preferred to encode it as <code>\N</code> because I think it is editor/reader friendlier. Would you agree? So my order is…</p>
<ol>
<li>Is \n or \t or? Leave it alone</li>
<li>Has c escape? Convert to that.</li>
<li>In printable range? Leave it alone.</li>
<li>Escape with \u</li>
</ol>
<p>Printing to console:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex&gt; IO.puts("a\u0085b")
a
b
:ok
</code></pre>
<p>Decode YAML (escape char inside double quotes) and printing to console:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex&gt; ~s("a\\Nb") |&gt; YamlElixir.read_from_string!() |&gt; IO.puts
a
b
:ok
</code></pre>
<p>Decode YAML (actual character) and printing to console:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex&gt; "a\u0085b" |&gt; YamlElixir.read_from_string!() |&gt; IO.puts
a
b
:ok
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="308640" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/is-there-a-way-to-escape-escape-characters-i-e-turn-u2003-u2003/59759/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-308640" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="308640"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>