如何在 Haskell 中将 Unicode 转义序列转换为 Unicode 字符串

编程入门 行业动态 更新时间:2024-10-25 06:30:25
本文介绍了如何在 Haskell 中将 Unicode 转义序列转换为 Unicode 字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个像 "36193657363436093648359236573648362136573591" 这样的字符串,我想对其进行解码.我尝试搜索 unicode 库但没有成功.

I have a string like "36193657363436093648359236573648362136573591" which I want to decode it. I tried search the unicode library without success.

推荐答案

前奏> putStrLn "36193657363436093648359236573648362136573591"้านเจ้เล้ง

Prelude> putStrLn "36193657363436093648359236573648362136573591" ร้านเจ้เล้ง

请注意,您实际上没有字符串 "36193657363436093648359236573648362136573591" –相反,您有 UTF-32 字符串 ร้านเจ้เล้ง,其中 "36193657..." 恰好是符合 ASCII 的文字.默认情况下,GHCi 使用 Show 实例来显示结果,它不会显示事物,而是吐出可以用作事物的 Haskell 代码的文字.它在 unicode 方面是保守的.这就是为什么

Note that you don't actually have the string "36193657363436093648359236573648362136573591" – rather, you have the UTF-32 string ร้านเจ้เล้ง, for which "36193657..." happens to be a ASCII-compliant literal. By default, GHCi uses the Show instance to display results, which doesn't so much show things as spit out literals that can be used as Haskell code for the thing. It's conservative in terms of unicode. That's why

前奏>ร้านเจ้เล้ง""36193657363436093648359236573648362136573591"

Prelude> "ร้านเจ้เล้ง" "36193657363436093648359236573648362136573591"

另一方面,putStrLn、putChar、hPutStr 等函数只会将字符串本身转储为 UTF-8 而不是其 ASCII 安全表示.

On the other hand, the putStrLn, putChar, hPutStr etc. functions will just dump the string itself in UTF-8 rather than an ASCII-safe representation thereof.

如果您实际上是从文件或其他东西中读取转义字符串,您可以简单地读取它:

If you're actually reading the escaped string from a file or something, you can simply read it:

前奏> s s""\3619\3657\3634\3609\3648\3592\3657\3648\3621\3657\3591"" -- 注意双重转义,因为我正在显示一个包含字符串文字的字符串.前奏> putStrLn $ 读s้านเจ้เล้ง

Prelude> s <‌- getLine "36193657363436093648359236573648362136573591" Prelude> s ""\3619\3657\3634\3609\3648\3592\3657\3648\3621\3657\3591"" -- Note double escaping, because I'm showing a string that contains a string literal. Prelude> putStrLn $ read s ร้านเจ้เล้ง

更多推荐

如何在 Haskell 中将 Unicode 转义序列转换为 Unicode 字符串

本文发布于:2023-11-02 17:47:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1553021.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:转换为   字符串   中将   序列   如何在

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!