异常空格,ASCII (194,160)问题
来源:互联网 发布:翻页相册制作软件 编辑:程序博客网 时间:2024/05/02 02:16
今天遇到了个异常空格的问题,与:http://www.cnblogs.com/wangyuyu/p/3711887.html 一致。
写了两行hive语句,看起来完全一样,但是就是一个可以执行,一个不可以。diff出两者不同,但是死活看不出来。
后来发现,由于一个是从qq中copy到onenote中再copy出来的,可能中间发生了转化。具体见下。
-------------------------------------------------------------
今天运营的同学反映有一些店铺的名称后面带空格,我下意识的说不可能啊,我已经处理过了啊。然后就找出来看。
其中有个店铺的名称是“安踏 ”,第一眼看上去好像是带了个空格。然后我就仔细的看了下。
1 pry(main)> "安踏 ".strip2 => "安踏 "
竟然没有变化。
1 pry(main)> "安踏 "[-1] == " "2 => false
怪不得,原来不是一个空格。
到底是什么呢? 对,查一下ascii码
1 pry(main)> " ".bytes2 => [32]
空格的ascii 是32
1 pry(main)> "安踏 "[-1].bytes2 => [194, 160]
这个竟然是194,160. 原来如此。
原因是字符串中的一个空格(ASCII:32)被UTF-8编码之后变成了字符(ASCII:194 和 160的组合)。在 UTF-8编码里面存在一个特殊的字符,其编码是“0xC2 0xA0”,转换成字符的时候表现为一个半角空格,跟一般的半角空格(ASCII 0x20)不同的是它的宽度不会被压缩,所以排版中常能用到它。但是GB2312、Unicode之类并没有这样的字符,所以转换后前台会显示为“?” 号,只是显示为问号而不是真正的问号,所以无法被替换。
解决方法是:
1 Shop.each do |shop|2 if shop.name.include?(" ") 3 shop.name = shop.name.split(" ")[0] 4 shop.save5 end 6 end
0 0
- 异常空格,ASCII (194,160)问题
- trim()清不了的空格有可能是 ASCII 160 空格
- 用Notepad 遇到的"空格"问题 ASCII 7F
- JAVA中计算ASCII 为160 32 的空格
- ASCII码值(回车、换行、空格......)
- 空格的两个ASCII码
- ascii问题
- UTF-8编码的空格(194 160)问题
- 回车、换行、空格的ASCII码值
- 回车、换行、空格的ASCII码值
- 回车、换行、空格的ASCII码值
- android edittext 搜索关键字带空格,引起url异常的问题
- 使用c3p0时jdbc.url最后包含空格导致数据库连接异常问题
- 关于ASCII问题
- ascii相关小问题
- Unicode Ascii编码问题
- ascii码问题
- python 中pip install ‘ASCII’ASCII问题
- 利用Jetty 来部署Maven 管理下的Eclipse Web项目
- nginx 输出自定义response header 到access.log
- 一天一算法之冒泡排序
- AutoHotKey的那些事儿:(四)、AutoHotkey的文件操作
- 第六周——贷款金额计算(数据类型转换)
- 异常空格,ASCII (194,160)问题
- Android开发笔记
- 数组最长递增子序列
- Git添加文件改动时出错
- 个人Android学习前言
- 【BeiJing2011】【BZOJ2462】矩阵模板
- web前端学习笔记02
- XCODE6 提交至 App Store
- 初识Mybatis-Spring