- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个专门用于在 Android 设备上查看的网站,我使用的是古吉拉特语,我在正确呈现古吉拉特语字体时遇到了一个大问题,我至少想要一个解决方法来让古吉拉特语字体正常工作,这在默认情况下不受支持任何安卓版本。所以我做到了,
解决方法:- 生根电话- 为古吉拉特语寻找正确的 unicode 字体- 将 System/fonts 中现有的 DroidSansFallback.ttf 替换为古吉拉特语字体(对 ICS 的 system/etc 文件夹中的 fontsfallback.xml 进行一些额外更改)
这有助于我至少查看古吉拉特语文本,但无法正确呈现。
问题:
1) 半形问题,半形字母没有正确呈现,因为它们应该组合但没有,
如果您在 unicode.org 上引用此常见问题解答,它清楚地定义了它应该如何呈现,我还通过使用 [unicodeLookup][7] 为每个字母使用 html 代码来使用提到的“零宽度连接器”,但它没有效果。
无论如何,这个问题不是主要的,因为它不正确但仍然不正确。
2) 这个渲染问题导致文本打印不正确,请看下面的两张图片,第一张在 PC 上正确渲染为可见,第二张是 Android native 浏览器的屏幕截图
标记为 1 的问题是第一个问题,标记为 2 的是第二个问题,如果你用谷歌搜索“Devanagari - Unicode Consortium ch09”,你会得到一个关于这个问题的 pdf(只需转到“图 9-8. 渲染” Order in Devanagari”),它清楚地解释了正确呈现脚本的方法。似乎这些语言不支持 android 用来呈现脚本的内容,如果可以对 Android 操作系统进行任何更改以按正确顺序呈现字体,请提供帮助。
这绝对不是字体的问题,因为我尝试使用 Windows 操作系统使用的 Shruti 字体,这是呈现这些复杂脚本的问题
可能的解决方案:(不需要的)
1) 将 opera mini 与位图字体一起使用(不是我的解决方案)
2) 使用图像而不是文本(同样不是我的解决方案,因为我的网站将有 300 行列表,而且对于移动设备来说也是如此,不想增加页面大小)
请给我一个正确的解决方案,在此先感谢!!
最佳答案
渲染古吉拉特语(和其他“复杂”文字,即那些使用半形式、上下文形式、重新排列等的文字)需要的不仅仅是字体;它还需要文本布局。文本布局功能通常由主机操作系统或在某些情况下由应用程序提供。 Android 一直在改进文本布局支持,但即使是最新版本仍未对所有脚本完成。换句话说:您无法仅通过字体轻松解决此问题,即使对于最新版本的 Android 也是如此。
可能的解决方法:
开发某种插件或扩展程序来纠正古吉拉特语布局并要求用户下载/安装插件才能使用您的网站。这可能是一条非常高阻抗的路径,需要大量的字体、软件开发和目标书写系统知识方面的专业知识。更不用说给您的用户带来的不便了。
开发古吉拉特语字体的自定义版本,并在您的站点中使用不需要文本布局的相应自定义文本;通过@font-face (webfont) 提供字体。如果您没有字体开发经验,这也可能相当具有挑战性,但这可能是最佳途径。
将文字渲染成图片;在已知客户端不支持复杂脚本的情况下进行浏览器嗅探并提供图像。这在很多时候很可能会失败(很难跟踪浏览器的功能,更不用说开始时可靠地检测浏览器的问题了)。但保证给出正确的结果。
关于android - Android 浏览器/GUI(古吉拉特语)上的印度语呈现不当,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12541892/
这个问题已经有答案了: What is the Java ?: operator called and what does it do? (17 个回答) 已关闭 8 年前。 ltVal = node
我是一名 Java 学生,我在嵌套该程序的条件语句时遇到问题 Exercise CozaLozaWoza (Loop & Condition): Write a program called Coza
首先,我想给出用户想要留下的句子的数量,当他的写作结束时,我的代码开始将每个单词的第一个字母大写(在 Java 中)。 import java.util.Scanner; public class I
我尝试在基类中实现一个函数,该函数使用子函数(defiend 作为基类中的抽象函数)。我认为一个例子可以最好地说明这个问题。 abstract class Animal{ public void
就像在口吃中一样,如果文本为“dean”并且乘数为 3,则结果将是“dddeeeaaannn”。 public static void repeatLetters() { String text
public void insert(int data) { if (root == null) root = new AVLNode(data); else {
我是 XPATH 的新手,并且遇到以下问题: 我有以下代码片段,但似乎无法按我的预期工作: String XML = cdataContent;
例如,Java 数据类型字节将数据从 -128 到 127 存储在单个字节中。为了能够区分 - 1 到 -128 从 0 到 127 将需要额外的数据,这些数据将采用数据类型覆盖其分配的存储空间。不可
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
Dataset: P1: Lion, Snow, Chair P2: Min: 0, Max: 28 P3: Min: 34, Max is 39. 我的程序 以一系列数组列表的形式提供上述数据集(P
我正在构建一个应该 24/7 全天候运行的客户端服务器应用程序。应用程序指定检测网络故障(使用心跳)并尽快重新连接到服务器。 我做的第一个测试只是停止客户端或服务器,然后重新启动,一切正常。我想知道是
我怀疑它是编写它的类的类型,但我不是 100% 确定,有人可以证实我的怀疑并可能提供对定义此行为的 Java 语言规范的引用吗? 假设类 A 有一个方法 a(),它在其主体中使用了 this 关键字,
我已经在谷歌上搜索了两个小时,但没有成功。 如果我有一个模板函数并且我想在模板类型上强制执行一个接口(interface),我该怎么做? 例如。 void doStuff(T)(bool param)
我正在尝试获取用户输入并对其进行修改,以便打印不带任何元音的字符串。我已经能够使用以下代码成功完成此操作。 Scanner in = new Scanner(System.in); Syste
每当我使用 Thread.sleep(); 时在 do while 循环中,提示告诉我,“在循环中调用 Thread.sleep 可能会导致性能问题。”我从许多其他网站和书籍上听到过这一点。我可以用什
请不要将其视为以下内容的重复项而将其忽略: How to generate random positive and negative numbers in java 我需要使用带有种子的随机数生成器。
我想在一个数字范围内选择随机数,但权重偏向该范围的一部分。例如: 选择1-10之间的随机数 对其进行加权,使 1-5 比 6-10 的可能性高 20% 这可能吗?我该怎么做? 最佳答案 这取决于您希望
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我有一个付款 Activity 和启动 Activity ,它在用户购买后显示内容应用程序。付款 Activity 是Manifest.xml中的默认启动器,我想将启动器 Activity 设置为启动
我有一个指针和长度。如何从他们那里得到一个动态数组? 最佳答案 设ptr是一个指针,len是一个长度,那么很容易如下: ptr[0..len] 请注意,这不会复制数组,而是就地使用数据。 如果要复制数
我是一名优秀的程序员,十分优秀!