异常空格,ASCII (194,160)问题
今天遇到了个异常空格的问题,与:http://www.cnblogs.com/wangyuyu/p/3711887.html 一致。
写了两行hive语句,看起来完全一样,但是就是一个可以执行,一个不可以。diff出两者不同,但是死活看不出来。
后来发现,由于一个是从qq中copy到onenote中再copy出来的,可能中间发生了转化。具体见下。
-------------------------------------------------------------
今天运营的同学反映有一些店铺的名称后面带空格,我下意识的说不可能啊,我已经处理过了啊。然后就找出来看。
其中有个店铺的名称是“安踏 ”,第一眼看上去好像是带了个空格。然后我就仔细的看了下。
1 pry(main)> "安踏 ".strip 2 => "安踏 "
竟然没有变化。
1 pry(main)> "安踏 "[-1] == " " 2 => false
怪不得,原来不是一个空格。
到底是什么呢? 对,查一下ascii码
1 pry(main)> " ".bytes 2 => [32]
空格的ascii 是32
1 pry(main)> "安踏 "[-1].bytes 2 => [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.save 5 end 6 end
异常空格,ASCII (194,160)问题相关推荐
- 特殊的空格 - ASCII(160)
特殊的空格 - ASCII(160) 编程语言-JAVA 1.问题引入 一般, 我们在db中落数据的时候, 都会对String类型的字段做去空格处理, 常用的方法无非trim(). 但是 最近在数据库 ...
- 【异常】 ‘ascii‘ codec can‘t decode byte 0xe8 in position 2: ordinal not in range(128)
[异常] 'ascii' codec can't decode byte 0xe8 in position 2: ordinal not in range(128) 参考文章: (1)[异常] 'as ...
- 【js】不间断空格 特殊的空格-ASCII码值160
键盘输入的空格的ASCII值是32, 而不间断空格(non-breaking space)是ASCII值为160的空格,就是页面上的 所产生的空格. 不间断空格的Unicode编码为\u00A0. 其 ...
- 前端特殊空格ASCII码为160,转为32的空格
项目背景: 用div自定义的输入框,富文本含有标签样式. 问题: 空格输入,在后台保存后,出现乱码,解析不了 解决: 在前端中,有个特殊的空格,就是页面中 在ascii中为160,平时的输入空格为32 ...
- 从excel导入数据库过程中遇到的空格转义符(#160;)
在一次excel导入数据到gridview中,莫名其妙的发现有部分数据导入失败,后台调试后发 现是因为有的字段在excel中后有空格,然后空格导入gridview中时显示为 而并不是我之前判断筛选的 ...
- java字符串替换空格符_特殊的空格(Java无法替换字符串中的空格)转
一.自己的问题 先说一下自己碰到的问题,自己在本地建立了一个json文件,并且把它格式化了(为了看着美观):然后在Java后台中去读取(使用BufferedReader的readline方法),但是读 ...
- mysql数据中包含不间断空格(ascii值为194和160)解决办法
mysql数据中包含不间断空格(ascii值为194和160)解决办法 问题 mysql数据存在这个不间断空格,导致前端显示乱码. 起因 字符串中的一个空格(ASCII:32)被UTF-8编码之后变成 ...
- ASCII码为160的空格,填坑
前端页面有些复制字段时,如果有 形成的空格,其ascii编码值为160,普通空格ascii编码值是32. 两种在java后端语言中是不同的容易造成看起来一样的字符串但实际值不同的bug eg: //空 ...
- JavaEE项目bug修复记——一场由特殊空字符(160号ASCII码)引发的血案
我负责维护的一个JavaEE项目中有这样一个功能:可以用poi批量导入Excel表中的学号并在该系统中创建对应的用户.上周三中午,接到用户反馈,将Excel导入系统后用其中的用户名出现了无法登陆提示用 ...
最新文章
- spring boot 启动不连接数据库
- Android SDK与API版本的对应关系
- 成功解决 class 'AttributeError' : 'Editor' object has no attribute '_Editor__markerMap'
- OpenGL合并转换
- layuiAdmin打开新窗口、新标签页
- ipython版本_使用pyenv切换版本后ipython无法使用解决方法
- 常见的字符函数与字符串函数介绍(1)
- 不同人眼中的“顶级程序员”,这差距也太大了吧!
- sh脚本异常:/bin/sh^M:bad interpreter: No such file ...
- xmp文件格式怎么导入ps?ACR预设安装方法
- 论文阅读-Generative Image Inpainting with Contextual Attention
- 2020.04.10 【ABAP随笔】- ABAP面试分享
- 【哈夫曼树】JZOJ_4210 我才不是萝莉控呢
- BigDecimal和DecimalFormat
- 使用pdfcrack破解PDF密码(Linux)
- 安全邮箱怎么注册?邮箱地址是什么?快速了解tomvip邮箱信息
- 上手 GAMES 104 课程 Pilot 游戏引擎~~
- 游戏原画可以自学么?有没有自学的大概流程
- 智能电网如何实现 ?
- 记:应聘富士康,软件开发工程师
热门文章
- 演示如何使用application.yml文件
- 青海高考成绩查询日期2021,2021年青海高考成绩什么时候出来 公布时间
- 定积分证明题例题_第二十天(20,11,27):积分中值定理
- python爬取有道词典_利用Python3和Charles爬取有道词典,生成翻译exe单文件
- 获取系统版本号_数据库系统原理
- python读取文件参数_Python 通过配置文件 读取参数进行
- java不看答案不会_Java新手必备:20道java基础面试题,不看答案你会几道题?
- arduino向串口发送数据时掉包_[技术]清楚简单,一种串口触摸屏的开发流程和方法介绍...
- android 获取其他布局,android listview onItemClick中获取其他item的布局
- 各数据结构算法时间复杂度图【笔记自用】