string - 如何在 Racket 中对 unicode 字符串进行 uri 编码

标签 string unicode encoding uri racket

下面的代码给我一个错误:

(uri-encode "Kidô senkan Nadeshiko")

也就是说,

vector-ref: index is out of range
  index: 244
  valid range: [0, 127]
  vector: '#("%00" "%01" "%02" "%03" "%04" "%05" "%06" "%07" "%08" "%09" "%0A" "%0B" "%0C" "%0D" "%0E" "%0F" "%10" "%11" "%12" "%13" "%...
  context...:
   /usr/lib/racket/collects/net/uri-codec.rkt:197:6: for-loop
   /usr/lib/racket/collects/net/uri-codec.rkt:195:0: encode
   /usr/lib/racket/collects/racket/private/misc.rkt:87:7

我猜 uri-encodeuri-decode 只支持 ASCII,我可以从一些测试的来源推断出这一点,here

所以我的问题是,github 或其他地方是否有一个库可以正确地对 unicode 字符串进行 uri 编码?还是我必须自己动手?

最佳答案

这可能与您运行程序的方式或使用的 Racket 版本有关。我在 Racket 5.2.1 中对此进行了测试,它对我有用:

#lang racket
(require net/uri-codec)

(uri-encode "Kidô senkan Nadeshiko")
=> "Kid%C3%B4%20senkan%20Nadeshiko"

关于string - 如何在 Racket 中对 unicode 字符串进行 uri 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129819/

相关文章:

c - 从函数内部进行矩阵访问

iOS 日文字符居中问题

php - 在 PHP 中将 Unicode 字符转换为文本不起作用

python - 跨多个字符串递增字典 - 不使用任何导入函数

用新指针构造字符串并重新分配给原始指针

html - 不同字体的utf-8字符

java - 在android中处理xml文件后出现奇怪的字符

encoding - Safari 根据请求对已编码的 URL 进行编码

windows - Git:Diff 不处理 UTF-8 以外的字符编码?

java - 正则表达式:获取字符串前后不带字符的特定字符串