菜鸟教程小白 发表于 2022-12-13 00:43:19

ios - 中文字符编码问题ios


                                            <p><p>我有一个应用程序支持四种语言。在那个时候,当我用中文用户名登录时,它会显示我这样的响应.. </p>

<blockquote>
<p>[{&#34;0&#34;:&#34;41&#34;,&#34;intid&#34;:&#34;41&#34;,&#34;1&#34;:&#34;\u8a00\u3046&#34;,<strong>&#34;varfirstname&#34;:&#34;\u8a00\u3046&#34;</strong>,&#34;2&#34;:&#34;\u8a00\u3046&#34;,&#34;varlastname&#34;:&#34;\u8a00\u3046&#34;,&#34;3&#34;:&#34;\u5730&#34;,&#34;varusername&#34;:&#34;\u5730&#34;,&#34;4&#34;:&#34;[email protected]&#34;,&#34;varemailid&#34;:&#34;[email protected]&#34;,&#34;5&#34;:&#34;qwert&#34;,&#34;varpassword&#34;:&#34;qwert&#34;,&#34;6&#34;:&#34;12345&#34;,&#34;varmobileno&#34;:&#34;12345&#34;,&#34;7&#34;:&#34;Enable&#34;,&#34;mobileMessage&#34;:&#34;Enable&#34;,&#34;8&#34;:&#34;&#34;,&#34;varphoneno&#34;:&#34;&#34;,&#34;9&#34;:&#34;Enable&#34;,&#34;enumstatus&#34;:&#34;Enable&#34;,&#34;10&#34;:&#34;2013-01-30&#34;,&#34;date_insert&#34;:&#34;2013-01-30&#34;,&#34;11&#34;:&#34;2013-01-30&#34;,&#34;date_edit&#34;:&#34;2013-01-30&#34;,&#34;12&#34;:&#34;1.38.28.36&#34;,&#34;varipaddress&#34;:&#34;1.38.28.36&#34;}]</p>
</blockquote>

<p>我想向 UITextfield Text 显示 <strong>"varfirstname"</strong> 。但是当我在 NSLog 中打印它时,我没有得到任何文本。 </p>

<blockquote>
<p><code>NSLog(@&#34;Text is === %@&#34;,textfname,text);</code></p>
</blockquote>

<p>如何解码此文本?并在 UITextfield 或 UILabel 上显示。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我刚刚搜索了一下,发现了来自 <a href="https://stackoverflow.com/questions/10838702/how-to-encode-or-decode-url-in-objective-c" rel="noreferrer noopener nofollow">here</a> 的有用答案之一.</p>

<p>中文和日文字符自然不适用于 ASCII 字符串编码。如果您尝试通过 Apple 的方法转义字符串,您绝对应该避免代码重复,将结果存储为 Unicode 字符串。使用以下编码之一:</p>

<pre><code>NSUTF8StringEncoding
NSUTF16StringEncoding
NSShiftJISStringEncoding (not Unicode, Japanese-specific)
</code></pre>

<p><strong>更新</strong></p>

<p>例如,您可以像下面这样编码解码您的中文字符串:</p>

<pre><code>NSString * test = @&#34;汉字马拉松是&#34;;
NSString* encodedString =;

NSLog(@&#34;====%@&#34;,encodedString);
</code></pre>

<p><strong>输出是:</strong></p>

<blockquote>
<p>%E6%B1%89%E5%AD%97%E9%A9%AC%E6%8B%89%E6%9D%BE%E6%98%AF</p>
</blockquote>

<p>然后像这样解码:</p>

<pre><code>NSString* originalString =;
NSLog(@&#34;====%@&#34;,originalString);
</code></pre>

<p><strong>输出是:</strong></p>

<blockquote>
<p>汉字马拉松是</p>
</blockquote></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 中文字符编码问题ios,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/14619316/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/14619316/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 中文字符编码问题ios