Android用省略号替换“…”


306

由于AVD工具16我收到以下警告:

Replace "..." with ellipsis character (..., …) ?

在我的strings.xml中

在这条线

 <string name="searching">Searching...</string>

我该如何更换...?只是字面上的意思&#8230;吗?

有人可以解释这种编码吗?


需要注意的是,我注意到一些Android自己翻译的字符串文件使用…本身而不是Unicode实体。鉴于Android XML文件通常都以UTF-8编码,因此我认为没有理由不使用字符本身而不是潜在的Unicode实体,尤其是由于当今大多数文字处理程序都支持将“ ...”自动校正为“ …”(默认情况下,Microsoft Word会这样做,最后我检查了一下)。
JAB

它实际上是三个点(ASCII 46 / 0x26)吗?还是ASCII 133(一个字符)?
Peter Mortensen

1
在回答另一个SO问题时,有一个比“将...更改为Unicode更好的解释”更好的解释。stackoverflow.com/a/27984145/973919简而言之,它可以防止三个点在多行文本上分开(仅显示1或2个点),在某些印刷术中,很难看到3个点。
xarlymg89

Answers:


538

&#8230;是unicode的“ ...... ”所以才更换。最好将它作为一个字符/符号而不是三个点。


41
为什么它“更好”?将文本提供给翻译人员时,这会使事情变得复杂。我们能以某种方式杀死这个愚蠢的警告吗?谢谢
swinefeaster 2012年

25
@swinefeaster很高兴知道:),但由于它们是可付款的,所以它们也是可教的:)
WarrenFaith 2012年

25
@swinefeaster之所以“更好”,部分原因是它没有中断(“ ...”可能会在第二个时期出现),并且从理论上讲,语言可以使它们有所不同(许多亚洲语言将它们置于中间,它们更宽(与字符宽度匹配)。不间断在任何地方都很有用,尽管我不知道Android在其他语言中正确地渲染它们,也不知道为此目的使用了UTF字符。
Groxx

12
具有“ ...”会导致可访问性问题。Android对讲系统将“正在加载...”读为“正在加载3期”
Mohammad Shabaz Moosa 2015年

14
看来我的评论不清楚。使用“正在加载...”(3个点)会导致对讲语音提示“正在加载3个期间”,并使用“正在加载&#8230;” (省略号)导致Talkback说“正在加载” [哪个很好。]因此,我们应始终使用省略号
Mohammad Shabaz Moosa 2015年

15

为了简短起见,只需放置&#x2026;到位...

链接到XML字符实体列表

  • 在HTML的Unicode列中查找名为hellip的行

5
我最初想知道为什么&#x2026;当Eclipse警告说要使用&#8230;但您的链接确实回答了这个问题时,为什么要使用。即,x表示十六进制值,十进制的8230十六进制为2026。
k2col

在何处放置此&#x2026的任何位置。
Tushar Pandey

@ TusharPandey-如果您的代码是<string name =“ searching”>正在搜索... </ string>,则其外观类似于<string name =“ searching”>正在搜索&#x2026 </ string>
Jadeye 2015年

13

如果使用的是Eclipse,则始终可以执行以下操作:

  • 右键单击警告
  • 选择“快速修复”(默认情况下,快捷键为Ctrl+ 1
  • 选择“用建议的字符替换”

这应该用省略号的正确Unicode字符替换您的三个点。

请注意:最新版本的ADT(21.1)有时无法正确执行替换操作,但是较早的版本这样做没有问题。

这是字符:


这对我有用!但是,除了警告消失以外,没有发生任何“视觉”事件,并且我正在运行ADT 22.2.1。但是我想那是它如何工作的:)
ymerdrengene

不是为我工作。Eclipse向我示意(我不知道为什么)用新的<element>标记替代<resources>标记。
Leonardo Raele 2014年

如果您没有完全突出显示正确的区域,Eclipse将在某个时候这样做。我发现自己要突出并尝试快速修复两到三遍,然后才能提出正确的建议。
迈克尔·塞利

10

您的问题的解决方案是:

Go to Window -> Preferences -> Android -> Lint Error Checking

并搜索“ 省略号 ”。将警告级别更改为“ 信息 ”或“ 忽略 ”。


8
这些建议确实有意义。如果您确实确定自己在做什么,则仅忽略它们只是解决方案。在这种情况下,替换是有意义的,因此忽略警告不是很好。
亚历山大·帕恰

谢谢!正是我想要的。这就是做各种相关事情的地方(我不需要电脑告诉我如何拼写,大写或标点符号)。很有用!
Scott Biggs

3
这不是忽略警告的好方法。您应该修正警告以获得更好的结果。
迪帕克

1
@ScottBiggs是公平的,如果计算机告诉您错误地拼写,大写或标点了某些东西,那么您应该修复它。在这方面,棉绒很有用,我建议不要禁用它们。
EpicPandaForce 2015年

3

这个答案与以下问题间接相关:

以我为例textView1.setTextView("done&#8230");,显示了一些方框/中文字符。后来,我检查fileformat.info了该值代表什么,发现这是一个汉字。那么该怎么办?我搜索了“ fileformat.info椭圆字符”,一旦我看到了它的值,一切就变得清晰起来了。

UTF-16 (hex) 0x2026 (2026)

UTF-16 (decimal) 8,230

因此,您可以使用几种编码来表示一个字符(例如,十进制中的10表示为十六进制中的A),因此了解何时编写Unicode字符,接收函数如何对其进行解码非常重要。如果它解码为十进制值,则必须提供十进制值;如果它接受十六进制,则必须提供十六进制。

就我而言,setTextView()函数接受十进制编码值,但是我提供的是十六进制值,所以我得到了错误的字符。



0

在我看来,最好不要忽略某些人的建议。使用Android Studio进行更正(而不是实际输入字符代码),该工具会将三点替换为三点unicode 字符。不会使翻译人员感到困惑。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.