[20180503]珅与分隔符.txt

[20180503]珅与分隔符.txt

--//今天再次遇到分隔符问题,以前也遇到过做一次,链接.http://blog.itpub.net/267265/viewspace-763696/
--//这个"珅"还是许多人喜欢作为名字使用..

$ cat d1.txt
123|张飞珅test|aaa1

$ cat d1.txt  | tr '|' '\n'
123
张飞?
test
aaa1

--//这样被分割成4个字段,导致错误.

$ echo 珅 | xxd -c 16
-bash: syntax error near unexpected token `|'

--//因为"珅" 编码包含字符"|",出现错误.要使用引号

$ echo -n "珅" | xxd -c 16
0000000: ab7c                                     .|

--//可以"珅"的编码是ab7c,而7c的编码对应的就是"|".

$ echo -n "|" | xxd -c 16
0000000: 7c                                       |

--//这样导致分割出现错误.实际上这个字符不属于GB2312编码表.
--//以前通过这个脚本定位:
select upper(TO_CHAR (167+rownum,'xxxxxxxxxxxxx')) "10to16",chr(167+rownum)||'|' from dual connect by level+167<=254;
--//但是仅仅对数据库字符集AMERICAN_AMERICA.US7ASCII有效.
--//对于字符集AMERICAN_AMERICA.ZHS16GBK可以使用如下查询:

SELECT hex, UTL_RAW.cast_to_varchar2 (hex) hz
  FROM (    SELECT TO_CHAR (167 + ROWNUM, 'FMxx') || '7c' hex
              FROM DUAL
        CONNECT BY LEVEL + 167 <= 254);



posted @   lfree  阅读(303)  评论(1编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示