【问题标题】:How to search for any unicode symbol in a character string?如何在字符串中搜索任何 unicode 符号?
【发布时间】:2016-09-27 18:29:08
【问题描述】:

我有一个现有的 DOORS 模块,其中恰好有一些富文本条目;这些条目中有一些符号,例如“卷曲”引号。我正在尝试升级导出 LaTeX 源文件的 DXL 宏,问题是这些大数字符号不被 TexMaker 的导入功能视为“标准 UTF-8”(并且在任何情况下都可能不会被处理由 Xelatex 或其他转换器)。我不能简单地使用 DXL 中的 UnicodeString 函数,因为它们破坏了富文本的其余部分,显然字符标识符 charOf(decimal_number_code) 仅适用于基本字符集,即小于某些数字代码值。例如,charOf(8217) 应该创建一个右弯单引号,但是当我尝试按照以下行编写代码时

if (charOf(8217) == one_char)

我从来没有得到匹配。我确实从 DOORS 模块复制了花引号,并通过在线 unicode 分析器验证它绝对是 Unicode 十进制值 8217 。

那么,我在这里缺少什么?我只想能够检测到任何符号字符,正确识别它,然后在输出流中将其替换为例如\textquoteright

我的整体设置适用于数量较少的字符,因为这样可以: (c 是从字符串中提取的单个字符)

    thedeg = charOf(176)
 if( thedeg == c )
        {
           temp += "$\\degree$"
       }

【问题讨论】:

    标签: unicode latex ibm-doors


    【解决方案1】:

    通过IBM forums 获得 DXL 编码专家的帮助。

    引用重要的东西(那里还有一些有用的代码 sn-ps):

    嘿,你是对的,似乎 intOf(char) 和 charOf(int) 都做了一些 模 256,因此将高于该值的任何内容都去掉。试试:

    int i=8217;
     char c = addr_(i);
     print c;
    

    然后允许将c 与任何输入字符进行比较。

    【讨论】:

    • 它有反向功能吗?我的意思是是否有 intOf() 等效项不执行模块 256?
    • 找到它:char c = addr_(10625)
    猜你喜欢
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    相关资源
    最近更新 更多