UTF-8和UTF-16编码方式相互转换的公式及步骤

2013年12月09日 其他资源 13条评论 阅读11274次

UTF-8和UTF-16编码方式相互转换的公式及步骤

 

不使用英文语言的地区,为使其语言文字正确显示到计算机等终端上,他的字符的编码就要单独处理了。

utf-8作为这种背景下的产物,因其编码范围等因素的制约,不得不将下一代编码方式utf-16推出。

utf-8和utf-16的编码相互转化就成为我们要掌握的重点了。以下就是正文内容:建议详细阅读。

 

UTF-16 编码程序

 

假设要将 U+64321 (16进位) 转成 UTF-16 编码. 因为它超过 U+FFFF, 所以他必须编译成32位(4个byte)的格式,如下所示

 

V  = 0x64321

Vx = V - 0x10000

   = 0x54321

   = 0101 0100 0011 0010 0001

 

Vh = 01 0101 0000 // Vx 的高位部份的 10 bits

Vl = 11 0010 0001 // Vx 的低位部份的 10 bits

w1 = 0xD800 //結果的前16位元初始值

w2 = 0xDC00 //結果的後16位元初始值

 

w1 = w1 | Vh

   = 1101 1000 0000 0000

   |        01 0101 0000

   = 1101 1001 0101 0000

   = 0xD950

 

w2 = w2 | Vl

   = 1101 1100 0000 0000

   |        11 0010 0001

   = 1101 1111 0010 0001

   = 0xDF21

 

所以这个字 U+64321 最后正确的 UTF-16 编码应该是:

 

0xD950 0xDF21

 

而在小尾序中最后的编码应该是:

 

0x50D9 0x21DF

 

假设要处理的UNICODE编码为X,来推一下位运算公式

 

第一步:X - 0x10000  得到结果为Y

 

第二步:取Y的高十位:Y >> 10   得到结果为Vh

 

第三步:取Y的低十位:Y  & 3FF(11 1111 1111) 这样就可以把十位前的全部清零了。 得到结果为Vl

 

第四步:将高位与前16位初始元0xD800 进行或操作 Vh | 0xD800  得到前半部  记为Uf

 

第五步:将低位与后16位初始元0xDC00进行或操作Vl |0xDC00 得到后半部份。Ue

 

第六步:将前后两部份合在一起。先左移十六位 (Uf << 16) 再或上Ue 即 (Uf << 16) | Ue

 

 

把这个写为宏的形式:

 

#define UNICODETOUTF16(x)  ((Uf << 16) | Ue) 将这个公式向前代替,最终得到

 

#define UNICODETOUTF16(x) (((((x - 0x10000) >>10) | 0xD800) << 16)  | (((x-0x10000)&3FF) | 0xDC00))        

 

同样使用UTF16转回为大于0x10000 的Unicode码;

 

#define MULITTHREEBYTEUTF16TOUNICODE(x,y) (((((x ^ 0xD800) << 2) | ((y ^ 0xDC00) >> 8)) << 8) | ((y ^ 0xDC00) & 0xFF)) + 0x10000 

 

本文总结整理来自多篇博客、论坛等资料。具体就不一一列出,若有侵权,请及时联系。

分享本文至:

WRITTEN BY

avatar
本文标签:UTF-8UTF-16
看了本文是不是觉得很赞,那就赶紧点击下面按钮分享给身边的朋友吧!

13 条评论

  1. <a href="http://www.koreazp.com/womens-nike-lunarglide-7-gold-orange-shoesi">womens nike lunarglide 7 gold orange</a> <a href="http://www.hiltonskyshop.com/nike-kobe-5-yellow-red-shoesp">nike kobe 5 yellow red</a> <a href="http://www.lavaforchange.com/air-jordan-b-mo-rosa-lilla-obuvl">air jordan b mo rosa lilla</a> <a href="http://www.lifeonfilms.com/air-jordan-phase-mintgr%C3%B8n-gr%C3%A5-skoj">air jordan phase mintgr酶n gr氓</a> <a href="http://www.midlandroofer.com/femminile-nike-air-max-tailwind-6-blu-oro-scarpel">femminile nike air max tailwind 6 blu oro</a> <a href="http://www.pearsonchool.com/womens-asics-gel-noosa-tri-8-yellow-white-shoesj">womens asics gel noosa tri 8 yellow white</a>
    jamiecirillo http://www.jamiecirillo.com/

  2. <a href="http://www.kiprahrakyat.com/nike-roshe-run-clear-blau-schuhei">nike roshe run clear blau</a> <a href="http://www.bmwoodworx.com/penn-state-47-hat-hath">penn state 47 hat</a> <a href="http://www.stpetereads.com/air-jordan-retro-7-mintgr%C3%B8n-hvid-trainersce">air jordan retro 7 mintgr酶n hvid</a> <a href="http://www.madebyizzaroo.com/converse-alle-star-wei%C3%9F-leder-verkauf-schuhek">converse alle star wei脽 leder verkauf</a> <a href="http://www.eliteogame.com/kvinders-nike-flyknit-lunar-3-lyser%C3%B8d-gr%C3%A5-scarpeg">kvinders nike flyknit lunar 3 lyser酶d gr氓</a> <a href="http://www.betakimassage.com/nike-air-jordan-4-blanc-and-bleu-kurpesb">nike air jordan 4 blanc and bleu</a>
    tgpmusic http://www.tgpmusic.com/

  3. avatar priakurus

    <a href="http://www.priakurus.com/north-face-jacket-price-northfaceh">north face jacket price</a> <a href="http://www.batatastudio.com/nike-hypervenom-1-orange-and-black-shoesh">nike hypervenom 1 orange and black</a> <a href="http://www.kahawellness.com/adidas-zx-flux-blanc-une-fleurs-chaussuresl">adidas zx flux blanc une fleurs</a> <a href="http://www.metabolifes.com/nike-air-huarache-black-and-grey-shoesj">nike air huarache black and grey</a> <a href="http://www.breconpharm.com/oklahoma-state-cowboys-top-of-the-world-ncaa-hunter-snapback-cap-hatk">oklahoma state cowboys top of the world ncaa hunter snapback cap</a> <a href="http://www.bagintaiwan.com/adidas-gazelle-dark-gr%C3%A5-kvinders-skoj">adidas gazelle dark gr氓 kvinders</a>
    priakurus http://www.priakurus.com/

  4. avatar chatgroupies

    <a href="http://www.viaggivaldata.com/mens-new-england-patriots-nike-camonavy-salute-to-service-sideline-legend-performance-three-nfli">mens new england patriots nike camonavy salute to service sideline legend performance three</a> <a href="http://www.sasguukr.com/ladies-p%C3%BArpura-converse-zapatosh">ladies p煤rpura converse</a> <a href="http://www.mobiigroups.com/mujeres-nike-kd-10-blanco-zapatosk">mujeres nike kd 10 blanco</a> <a href="http://www.alboths.com/light-grey-north-face-hoodie-northfaceh">light grey north face hoodie</a> <a href="http://www.woulee.com/m%C3%A4nner-nike-flyknit-trainer-colorful-schuhek">m盲nner nike flyknit trainer colorful</a> <a href="http://www.ulriksdalssk.com/asics-gel-kayano-20-m%C3%A6nd-hvid-sort-skoi">asics gel kayano 20 m忙nd hvid sort</a>
    chatgroupies http://www.chatgroupies.com/

  5. avatar radioramabc

    <a href="http://www.mandydugan.com/nike-air-force-1-high-perf-blanc-noir-chaussuresl">nike air force 1 high perf blanc noir</a> <a href="http://www.dxnkofe.com/nike-air-max-lunar-1-femmes-or-blanc-chaussuresq">nike air max lunar 1 femmes or blanc</a> <a href="http://www.yurasmirnov.com/dam%C3%A4nner-nike-shox-current-grau-gelb-schuhei">dam盲nner nike shox current grau gelb</a> <a href="http://www.blovese.com/nike-zoom-structure-18-dam%C3%A4nner-blau-gelb-schuheh">nike zoom structure 18 dam盲nner blau gelb</a> <a href="http://www.ztsurfboards.com/kvinners-nike-air-max-thea-gul-hvit-obuvj">kvinners nike air max thea gul hvit</a> <a href="http://www.visheshcap.com/air-jordan-after-game-gituttio-arancia-scarpep">air jordan after game gituttio arancia</a>
    radioramabc http://www.radioramabc.com/

  6. avatar pngoilgas

    <a href="http://www.matrawildlife.com/chris-sale-red-sox-jersey-nflh">chris sale red sox jersey</a> <a href="http://www.hiyawigs.com/adidas-ultra-boost-hvit-mennns-obuvi">adidas ultra boost hvit mennns</a> <a href="http://www.fidgefingers.com/nike-air-max-90-mens-black-and-grey-shoesj">nike air max 90 mens black and grey</a> <a href="http://www.lintvan.com/adidas-new-black-shoes-shoesl">adidas new black shoes</a> <a href="http://www.pubgdust.com/womens-ralph-lauren-v-neck-t-shirts-poloh">womens ralph lauren v neck t shirts</a> <a href="http://www.ahtantalya.com/herre-asics-gel-kinsei-4-hvid-gr%C3%A5-skok">herre asics gel kinsei 4 hvid gr氓</a>
    [url=http://www.pngoilgas.com/]pngoilgas[/url]

  7. avatar igrejamormon

    <a href="http://www.sophiecrooks.com/snapback-hats-california-hatk">snapback hats california</a> <a href="http://www.hkelitemodels.com/m%C3%A6nd-adidas-zx-630-aluminum-electricity-skoj">m忙nd adidas zx 630 aluminum electricity</a> <a href="http://www.graciecomm.com/ralph-lauren-canvas-weekend-bag-poloh">ralph lauren canvas weekend bag</a>
    igrejamormon http://www.igrejamormon.com/

  8. avatar 津电动卷帘门

    这个步骤还是挺好的

  9. avatar bet365娱乐城

    看过了··还真不是太晓得

  10. avatar 预应力钢绞线

    这个公式可以好好学习的哈

  11. avatar 行业报告分析

    嗯嗯,看过了~

  12. avatar 梦居家

    看不太懂  不是很明白

  13. avatar 按摩椅

    看起来很不错哦

欢迎留言




用户登录

sitemap