前端常见兼容问题系列5:¥符号在部分Android APP的WebView中不见了

简介: 在一些安卓机型中,¥符号在某些Android APP的WebView中显示不正确,会受到页面元素lang属性设置的影响。

问题再现

¥符号在涉及到售卖的页面再常见不过了。但是,测试中居然发现,华为荣耀6 plus(系统4.4.2)上,某APP中该符号不见了,所有用到该符号的地方均成了空白(如图1所示)。

screenshot.png
(图1)

而实际上,我所期望的效果如图2所示:
screenshot.png
(图2)

分析过程

莫非是编码不对?首先,来看一下我是怎么实现¥这个符号的——用的是CSS,形如

.price:before{
        content:'\A5';
        display:block;
        font-size:12px;
}

的伪元素。

发现这个问题之后,我尝试把它直接写在html中,或者&yen; &#165; &#xa5; &#165; &#xA5; 等都试验了一番,全部都不能显示。网络检索到有人说把它改成全角的¥,即(FFE5),还是不行。然道说我碰到“天坑”了。但这时,我就相信一条:有bug必有原因!于是又复查了一遍源代码,发现<html>标签上设置了lang="zh-cmn-Hans" ,我试着把它改成了lang="en" ,问题居然就这么解决了。

但是,字符虽然出来了,显示出来的却始终是Ұ的形状,而非¥,即少了一横。我突然想起来刚才反复试验的时候把content:'\A5';改成了content:'\FFE5';,于是恢复了一下,才最终大功告成。

不过,因为原有的页面是在<html>标签上设置了lang="zh-cmn-Hans" ,如果我们需要在保留它的前提下怎么解决这个bug呢?

结论

影响面比较小的办法是:可以只针对使用了半角的¥的容器标签添加lang="en"属性,如<span class="price" lang="en">&#165;</span>

另外,有网友介绍华为P7 ,小米3也都存在该问题,看来不只是个例。考虑到其对视觉展现和语义表达的影响非常明显,因而值得特别留意重视。

目录
相关文章
|
16天前
|
人工智能 自然语言处理 前端开发
从0开始打造一款APP:前端+搭建本机服务,定制暖冬卫衣先到先得
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。
9400 24
|
4月前
Android.mk(makefile)中几个符号的区别:=、 :=、 ?=、 +=
本文解释了在Android.mk文件中使用的几种赋值符号的区别,包括`=`(基本赋值)、`:=`(覆盖赋值)、`?=`(条件赋值,仅在变量未赋值时操作)、`+=`(追加赋值),并通过实验演示了这些符号的具体行为和效果。
242 1
|
8天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
35 3
|
5月前
|
XML 自然语言处理 Android开发
🌐Android国际化与本地化全攻略!让你的App走遍全球无障碍!🌍
【7月更文挑战第28天】在全球化背景下,实现Android应用的国际化与本地化至关重要 for 用户基础扩展。本文通过旅游指南App案例,介绍全攻略。步骤包括资源文件拆分与命名、适配布局与方向、处理日期时间及货币格式、考虑文化习俗及进行详尽测试。采用Android Studio支持,创建如`res/values-en/strings.xml`等多语言资源文件夹,使用灵活布局解决文本长度差异问题,并通过用户反馈迭代优化。最终,打造一款能无缝融入全球各地文化的App。
222 3
|
5月前
|
消息中间件 Android开发 开发者
🔍深度剖析Android内存泄漏,让你的App远离崩溃边缘,稳如老狗!🐶
【7月更文挑战第28天】在 Android 开发中,内存管理至关重要。内存泄漏可悄无声息地累积,最终导致应用崩溃或性能下滑。它通常由不正确地持有 Activity 或 Fragment 的引用引起。常见原因包括静态变量持有组件引用、非静态内部类误用、Handler 使用不当、资源未关闭及集合对象未清理。使用 Android Studio Profiler 和 LeakCanary 可检测泄漏,修复方法涉及使用弱引用、改用静态内部类、妥善管理 Handler 和及时释放资源。良好的内存管理是保证应用稳定性的基石。
109 4
|
5月前
|
XML 缓存 Android开发
🎯解锁Android性能优化秘籍!让你的App流畅如飞,用户爱不释手!🚀
【7月更文挑战第28天】在移动应用竞争中,性能是关键。掌握Android性能优化技巧对开发者至关重要。
47 2
|
4月前
|
缓存 前端开发 Java
【Azure 应用服务】App Service 使用Tomcat运行Java应用,如何设置前端网页缓存的相应参数呢(-Xms512m -Xmx1204m)?
【Azure 应用服务】App Service 使用Tomcat运行Java应用,如何设置前端网页缓存的相应参数呢(-Xms512m -Xmx1204m)?
|
4月前
|
前端开发 JavaScript Java
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
|
4月前
|
JavaScript 前端开发 安全
VUE——APP,后端,前端三端AES加密解密
VUE——APP,后端,前端三端AES加密解密
182 0
|
5月前
|
Android开发
Android面试题经典之如何全局替换App的字体
在Android应用中替换字体有全局和局部方法。全局替换涉及在`Application`的`onCreate`中设置自定义字体,并创建新主题。局部替换则可在布局中通过`ResourcesCompat.getFont()`加载字体文件并应用于`TextView`。
90 2