<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>UTF-8 · Vixyun · Tools &amp; Content</title>
    <link>https://vixyun.top/tags/utf-8/</link>
    <description>2 posts tagged “UTF-8”.</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 19 Oct 2026 10:30:00 +0800</lastBuildDate>
    <atom:link href="https://vixyun.top/tags/utf-8/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How Big Does This QR Code Need to Be: Bytes, Versions, and What Level H Costs</title>
      <link>https://vixyun.top/posts/qr-code-size-version-and-level/</link>
      <pubDate>Mon, 19 Oct 2026 10:30:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/qr-code-size-version-and-level/</guid>
      <description>A QR version is a size, not a quality: what your text costs in bits, which level pushes it into a bigger grid, and how many millimetres that needs on paper.</description>
    </item>
    <item>
      <title>Base64 with Chinese and emoji: why btoa throws and atob returns mojibake</title>
      <link>https://vixyun.top/posts/base64-encoding-chinese/</link>
      <pubDate>Sun, 04 Oct 2026 10:00:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/base64-encoding-chinese/</guid>
      <description>btoa(&#39;你好&#39;) throws and atob returns mojibake because Base64 works on bytes, not characters. The UTF-8 round trip, padding, why + breaks tokens, base64url.</description>
    </item>
  </channel>
</rss>
