【发布时间】:2014-04-15 04:01:35
【问题描述】:
如果给定字符串在 tcl 中包含非 UTF-8 字符,那么搜索的最佳方法是什么? regexp'ing "^[\x00-\x7f]+$" 是唯一的出路吗?
我正在尝试编写一个 tcl proc 来检查给定变量是否包含非 UTF-8 字符以及是否将其替换为“不支持”
【问题讨论】:
如果给定字符串在 tcl 中包含非 UTF-8 字符,那么搜索的最佳方法是什么? regexp'ing "^[\x00-\x7f]+$" 是唯一的出路吗?
我正在尝试编写一个 tcl proc 来检查给定变量是否包含非 UTF-8 字符以及是否将其替换为“不支持”
【问题讨论】:
所有 Tcl 的字符都是 Unicode 字符。
好的,这没有帮助。您实际上似乎在询问非 ASCII 字符。假设您想用 ? 替换每个非 ASCII 字符,您可以使用正则表达式替换,如下所示:
regsub -all {[\u0080-\uffff]} $inputString "?" outputString
这里的关键是 RE 在大括号中(实际上总是强烈推荐)并且我们使用 \uXXXX 转义序列(RE 引擎也明白)。这可能会增加很多?s,但我相信你可以调整。
【讨论】: