`

tango.text.convert.Utf 翻译

阅读更多

tango.text.convert.Utf(r4809)

License:

BSD style: see license.txt

Version:

Initial release: Oct 2004

Authors:

Kris

快速的Unicode代码转换器。这些对于32x86设备的微小变化尤其敏感,因为这些设备上的寄存器级是非常小。当心细微的变化可能会延伸到执行周期的200%多。正因为如此,六种代码转换器中的三种在阻止前会读取超过输入末端一、二或三个字节。注意,为流支持添加上15%的对dchar => char转换的开销,但对其它的没有什么影响。

这些例程已对Intel P4进行调谐;别的设备用一个稍有不同的途径工作得更有效率,不过这可以像对 AMD x86 CPUs也进行适当的优化。这些算法可以从AMD64的额外寄存器得到较大的获益。对于3GHz P4dchar/char转换处理1000ASCII 元素的数组花费大约2500ns。调用内存管理器使周期加倍,对100个元素的数组时间成四倍。内存分配在多线程环境会显著地减缓,因此要尽可能地避免。

utf16 utf8间转码时代用对用一个非优化的样式进行处理。这样的情况被认为是这个模块的边界条件。

有三种常见情况下输入可以不完整,包括utf8 => utf16, utf8 => utf32, and utf16 => utf32的每个'widening'(加宽)情况。一个边缘(edge-case)情况是utf16 => utf8,如果代理对存在。这样的情况会抛出一个异常,除非流模式被激活--在后一种模式,一个附加的整数被返回用于指明输入已经消耗了多少个元素。在所有情况下,一个正确的输出的切片被返回。

对于Unicode处理的细节见:

char[] toString(wchar[] input, char[] output = null, uint* ate = null) #
Utf8 码到最大4字节长(五或六字节的变体不支持)。
如果输出用空闲堆栈提供,它应该足够大以完成整个转码;这要做失败会引起输出被移动到堆上来代替。
返回输出缓冲区与转换后的字符相对应的一个切片,为了优化性能,返回缓冲区应该为随后的调用被指定为'output' (输出)。例如:
1
2
3
4
5
6
7
char[] output;

char[] result = toString (input, output);

// reset output after a realloc
if (result.length > output.length)
    output = result;
wchar[] toString16(char[] input, wchar[] output = null, uint* ate = null) #
译由上面的toString() 方法产生Utf8码。
如果输出被空闲的堆栈提供,它会大得足以完成整个转码;这样做失败会导致输出被移动到堆上代替。

返回输出缓冲区的一个切片,与已转换的字符相对应。为了最佳性能,返回的缓冲区将会指定为在后来的调用上的'output'

char[] toString(dchar[] input, char[] output = null, uint* ate = null) #
Utf8码为最多为4字节长(五和六字节的变体是不支持的)。输入的dchar大于0x10ffff抛出一个异常。
如果输出用空闲的堆栈提供,它是大得足以完成整个转码;这样做失败会导致输出移动到堆上来代替。

返回输出缓冲区的一个切片,与已转换的字符相对应。为了取得最大性能,返回缓冲区将对随后的调用指定为'output'(输出)。

dchar[] toString32(char[] input, dchar[] output = null, uint* ate = null) #
译通过上面的toString()方法产生的Utf8码。
如果输出用空闲的堆栈提供,它是大得足以完成整个转码;这样做失败会导致输出移动到堆上来代替。

返回输出缓冲区的一个切片,与已转换的字符相对应。为了取得最大性能,返回缓冲区将对随后的调用指定为'output'(输出)。

wchar[] toString16(dchar[] input, wchar[] output = null, uint* ate = null) #
Utf16码最大为2 字节长。输入的dchar 大于0x10ffff 会抛出一个异常。
如果输出用空闲的堆栈提供,它是大得足以完成整个转码;这样做失败会导致输出移动到堆上来代替。

返回输出缓冲区的一个切片,与已转换的字符相对应。为了取得最大性能,返回缓冲区将对随后的调用指定为'output'(输出)。

dchar[] toString32(wchar[] input, dchar[] output = null, uint* ate = null) #
译通过上面toString16() 方法产生的Utf16码。
如果输出用空闲的堆栈提供,它是大得足以完成整个转码;这样做失败会导致输出移动到堆上来代替。

返回输出缓冲区的一个切片,与已转换的字符相对应。为了取得最大性能,返回缓冲区将对随后的调用指定为'output'(输出)。

dchar decode(char[] src, inout uint ate) #
从给定的src文本解一个简单的dchar码,并指出从src中这样做后消耗了多少字符。
dchar decode(wchar[] src, inout uint ate) #
从给定的src文本解一个简单的dchar码,并指出从src中这样做后消耗了多少字符。
char[] encode(char[] dst, dchar c) #
编一个dchar码到提供的dst数组,并返回一个它表示该编码的切片。
wchar[] encode(wchar[] dst, dchar c) #
编一个dchar码到提供的dst数组,并返回一个它表示该编码的切片。
bool isValid(dchar c) #
判断给定字符是否有效?
T[] fromString8(T)(char[] s, T[] dst) #
从一个char[]转换到dst提供的类型。
返回给定dst的一个切片,它必须足够大以容纳结果,否则在堆上分配数组。没有转换要求的地方返回原输入。
T[] fromString16(T)(wchar[] s, T[] dst) #
从一个wchar[]转换到dst提供的类型。
返回给定dst的一个切片,它必须足够大以容纳结果,否则在堆上分配数组。没有转换要求的地方返回原输入。
T[] fromString32(T)(dchar[] s, T[] dst) #
从一个dchar[]转换到dst提供的类型。
返回给定dst的一个切片,它必须足够大以容纳结果,否则在堆上分配数组。没有转换要求的地方返回原输入。
T[] cropLeft(T)(T[] s) #
调整内容,以使提供的文字的左边没有部分编码存在。
返回输入的一个切片。
T[] cropRight(T)(T[] s) #
调整内容,以使提供的文字的右边没有部分编码存在。
返回输入的一个切片。

Copyright (c) 2004 Kris Bell. All rights reserved :: Generated by dil on Thu Jul 23 00:19:39 2009. Rendered by kandil.

分享到:
评论

相关推荐

    tango-controls.pdf

    详细介绍了Tango Control System 的使用和搭建。 分别在不同设备上搭建,顺便详细展示用途。

    TangoTagger:Clojure 库,用于根据来自 tango.info 网站的数据自动标记探戈歌曲

    探戈标签Clojure 库,用于根据来自 tango.info 网站的数据自动标记探戈歌曲。执照版权所有 :copyright: 2014 Bruno Alfirević 根据 Eclipse 公共许可证分发 1.0 版或(由您选择)任何更高版本。

    Windows安装TANGO教程.docx

    Windows10搭建TANGO环境图文教程

    谈客视频电话 Tango v3.13.128111

    谈客视频电话 Tango v3.13.128111 更新时间:2015-01-14 版本:3.13.128111 软件语言:多语言 软件类别:网络语音 软件大小:26.18 MB 适用固件:2.1及更高固件 内置广告:没有广告 适用平台:Android Tango为您...

    Tango视频电话 v3.13.127894

    Tango视频电话3.13.127894 Tango Video Calls 大小:26.18MB 更新时间:2015-01-12 Tango为您带来免费的高品质视频通话,在3G和Wi-Fi网络上都运行如飞!全世界数百万用户都在使用妙趣横生又简单易用的Tango视频...

    Learn to Tango with D

    Apress.Learn.to.Tango.with.D.Jan.2008.pdf 学习D语言的好书,通过学习D语言的类库Tango来运用这门语言,你会发现他是多么的精彩

    tango, 微型&可以插入网络框架.zip

    tango, 微型&可以插入网络框架 Tango 软件包探戈是一个微型&可以插入的网页框架。当前版本:v0.5.0 版本的历史记录。正在启动要安装 Tango:go get github.com/lunny/tango

    PyPI 官网下载 | django-tango-0.3.1.tar.gz

    资源来自pypi官网。 资源全名:django-tango-0.3.1.tar.gz

    authz:移动了https

    身份验证 authz是的授权中间件,它基于 。 安装 ...简单的例子 package main import ( ... tg := tango .... HandlerFunc ( func ( ctx * tango. Context ) { sess := sessions . Session ( ctx . Req ()

    Python库 | tango-comments-0.4.3.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:tango-comments-0.4.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    tango-colors:探戈颜色定义用于python,乳胶和其他..

    如果要在乳胶文档中使用这些探戈颜色,请将tango.sty放在某个可以找到乳胶的地方。 例如,在texmf目录中。 Python 您有两种使用颜色的方法。 如果只需要HTML模型,则可以导入TANGO_HTML_COLORS ,这是探戈颜色的...

    flume-redis:Flume-Redis添加了源和接收器功能以支持Apache Flume中的Redis

    agent.sources.redisSource.type = com.tango.logstash.flume.redis.source.RedisSource agent.sources.redisSource.host = localhost agent.sources.redisSource.key = logstash agent.sources.redisSource.batch_...

    Tango-D2:Tango库到D2的端口

    现在,这意味着基本上所有用户模块(tango.math.BigNum除外,别名为std.bigint,直到另行通知)和大多数tango.core模块都已移植。 doc / examples文件夹中的示例也应该起作用。 我在Linux上进行移植,因此这是经过...

    TangoSDK_Eisa_Unity5.unitypackage

    TangoSDK_Eisa_Unity5.unitypackage

    manual-zh-CN:Tango使用指南 Moved to https

    Tango Tango 是一个微内核易扩展的Go语言Web框架,他兼有Beego的效率和Martini的中间件设计。 最近更新 ... tango.JSON } func (Action) Get() interface{} { if true { return map[string]string{

    D语言教程

    D语言教程Apress.Learn.to.Tango.with.D.Jan.2008.pdf

    tango:一个基于React的WordPress主题原型

    将探戈存储git clone git@github.com:kwight/tango.git到您的wp-content/themes/文件夹中: git clone git@github.com:kwight/tango.git cd进入新的Tango主题,然后运行npm install 。 运行npm run build来创建...

    Tango助手-crx插件

    语言:English,中文 (简体) 自动提取bugly页面的日志数据,并以可读性更高的UI形式展现 自动提取bugly页面的日志数据,并自动弹窗显示;支持多种显示日志方式:1. 自动弹窗提醒;可通过设置,取消自动弹窗提醒(默认...

    电路设计软件tango

    tango 古老的电路板设计软件,包含sch pcb 打印等等

    TangoSdk For Unity

    Tango SDK---The latest version of the Unity SDK is Ikariotikos (Version 1.54, June 2017).

Global site tag (gtag.js) - Google Analytics