Opentbs 上层不适用于像 æøå 这样的特殊字符

Opentbs upper not working for special chars like æøå

我被这个问题困扰了一段时间。

当我合并一个字段并希望将其发送为大写时,我通常使用 [onshow.field;ope=upper],它几乎适用于所有字段,但我们有时会使用特殊字符,如 æ、ø 和 å,这些字符不像其他人一样发送到上层。

有没有人知道哪里出了问题?

Going through the source code of OpenTBS and searching for "upper", you get to the cryptic constant "15",表示转换为大写。它实际上支持Unicode转换:

($Loc->OpeUtf8) ? mb_convert_case($CurrVal, MB_CASE_UPPER, 'UTF-8') : strtoupper($CurrVal)

enable Unicode, it seems that you also need ope=utf8. It seems that you can have multiple filters by separating them with a comma,所以在你的模板中,你可以这样写:

[onshow.field;ope=utf8,upper]

或者您可以更改源代码以在 line 1293 上默认始终支持 Unicode:

$Loc->OpeUtf8 = true;