tim-wu
備忘: UTF-8的格式
http://www.google.com/search?hl=zh-CN&q=UTF-8+0x7FF&btnG=Google+%E6%90%9C%E7%B4%A2&lr=
java中一個char對應一個int,長度為32bit
而utf-8保存一個char時,長度為1-3個byte,也就是8bit-24bit。
其中code<= 0x7F的,保存為1個byte
(code >= 0x80) && (code <= 0x7FF)的,保存為2個byte
code>0x800的,保存為3個byte
因此lucene中,IndexOutput.writeChars()函數的代碼為
public
void
writeChars(String s,
int
start,
int
length)
throws
IOException
{
final
int
end
=
start
+
length;
for
(
int
i
=
start; i
<
end; i
++
)
{
final
int
code
=
(
int
) s.charAt(i);
if
(code
>=
0x01
&&
code
<=
0x7F
)
writeByte((
byte
) code);
else
if
(((code
>=
0x80
)
&&
(code
<=
0x7FF
))
||
code
==
0
)
{
writeByte((
byte
) (
0xC0
|
(code
>>
6
)));
writeByte((
byte
) (
0x80
|
(code
&
0x3F
)));
}
else
{
writeByte((
byte
) (
0xE0
|
(code
>>>
12
)));
writeByte((
byte
) (
0x80
|
((code
>>
6
)
&
0x3F
)));
writeByte((
byte
) (
0x80
|
(code
&
0x3F
)));
}
}
}
發表于 2007-09-12 17:19
鵬飛萬里
閱讀(716)
評論(3)
編輯
收藏
評論
#
re: 備忘: UTF-8的格式
修正一下,還有4 bytes的utf-8字符集
http://m.tkk7.com/tim-wu/archive/2007/12/07/165989.html
鵬飛萬里
評論于 2008-01-09 17:37
回復
更多評論
#
re: 備忘: UTF-8的格式
從這看出Lucene只支持到了BMP(3 bytes utf-8),估計是因為J2SE 1.4中的字符處理是基于Unicode 3.0標準的。
目前完整的unicode需要4 bytes utf-8才能實現。
參考
http://zh.wikipedia.org/wiki/UTF-8
http://m.tkk7.com/tim-wu/archive/2008/01/25/177788.html
另:
Java 1.0 supports Unicode version 1.1.
Java 1.1 onwards supports Unicode version 2.0.
J2SE 1.4中的字符處理是基于Unicode 3.0標準的。
J2SE v 1.5 supports Unicode 4.0 character set.
而:
Unicode 3.0:1999年九月;涵蓋了來自ISO 10646-1的十六位元通用字元集(UCS)基本多文種平面(Basic Multilingual Plane)
Unicode 3.1:2001年三月;新增從ISO 10646-2定義的輔助平面(Supplementary Planes)
鵬飛萬里
評論于 2008-01-25 22:29
回復
更多評論
#
re: 備忘: UTF-8的格式
補充:
BMP中約定了:
D800-DBFF:High-half zone of UTF-16
DC00-DFFF:Low-half zone of UTF-16
因此UTF-8中約定,D800-DFFF無意義。
當然,這兒lucene的實現是可靠的并且可逆的轉換,但它其實使用2個UTF-8來表示本應該用一個4 bytes 來表示的UTF-8符,也就是輔助平面的字符
BMP
http://zh.wikipedia.org/w/index.php?title=%E5%9F%BA%E6%9C%AC%E5%A4%9A%E6%96%87%E7%A8%AE%E5%B9%B3%E9%9D%A2&variant=zh-cn
輔助平面
http://zh.wikipedia.org/wiki/%E8%BE%85%E5%8A%A9%E5%B9%B3%E9%9D%A2
鵬飛萬里
評論于 2008-01-26 01:34
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
<
2007年9月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
導航
BlogJava
首頁
發新隨筆
發新文章
聯系
聚合
管理
統計
隨筆: 28
文章: 0
評論: 38
引用: 1
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(4)
給我留言
查看公開留言
查看私人留言
我參與的團隊
WebGIS開發設計組(0/0)
隨筆檔案
2008年2月 (4)
2008年1月 (6)
2007年12月 (2)
2007年11月 (2)
2007年9月 (8)
2007年3月 (1)
2006年5月 (4)
2006年4月 (1)
搜索
最新評論
1.?re: 關于Javascript的內存泄漏問題的整理稿
很有幫助!謝謝
--selma
2.?re: 關于Javascript的內存泄漏問題的整理稿
對象是值傳遞的,所以第一段代碼不可能是js對象和dom對象的循環引用,而是dom自身的循環引用
--axiheyhey
3.?re: 關于Javascript的內存泄漏問題的整理稿[未登錄]
評論內容較長,點擊標題查看
--鵬飛萬里
4.?re: 關于Javascript的內存泄漏問題的整理稿
評論內容較長,點擊標題查看
--goofect
5.?re: 關于Javascript的內存泄漏問題的整理稿
評論內容較長,點擊標題查看
--goofect
閱讀排行榜
1.?關于Javascript的內存泄漏問題的整理稿(18604)
2.?關于google map api中的球平投影算法接口: GProjection和GMercatorProjection類(4822)
3.?Lucene如何控制segments的數量?(4671)
4.?javascript的prototype(2522)
5.?Java7 VB2008都開始支持Lambda(Closure)了(2361)
評論排行榜
1.?關于Javascript的內存泄漏問題的整理稿(17)
2.?關于google map api中的球平投影算法接口: GProjection和GMercatorProjection類(7)
3.?備忘: UTF-8的格式(3)
4.?Lucene如何控制segments的數量?(3)
5.?復雜度為log(n)的排序堆棧算法(2)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 鵬飛萬里
主站蜘蛛池模板:
日本视频免费观看
|
中文字幕亚洲精品无码
|
久久久WWW成人免费精品
|
国产免费69成人精品视频
|
亚洲熟妇无码AV
|
四虎影院免费在线播放
|
亚洲av无码一区二区三区四区
|
一级免费黄色毛片
|
夜色阁亚洲一区二区三区
|
新最免费影视大全在线播放
|
va亚洲va日韩不卡在线观看
|
免费看黄网站在线看
|
亚洲 综合 国产 欧洲 丝袜
|
一级毛片成人免费看a
|
亚洲精品tv久久久久久久久
|
在线观看免费视频网站色
|
亚洲五月激情综合图片区
|
69天堂人成无码麻豆免费视频
|
亚洲依依成人亚洲社区
|
免费人妻av无码专区
|
两个人看的www高清免费视频
|
亚洲另类春色国产精品
|
午夜老司机免费视频
|
一级做a爰黑人又硬又粗免费看51社区国产精品视
|
粉色视频在线观看www免费
|
久久久久亚洲av毛片大
|
四虎影视在线影院在线观看免费视频
|
337p欧洲亚洲大胆艺术
|
尤物永久免费AV无码网站
|
一级特级女人18毛片免费视频
|
亚洲国产精品一区二区成人片国内
|
91av视频免费在线观看
|
激情无码亚洲一区二区三区
|
国产乱码免费卡1卡二卡3卡
|
国产午夜免费高清久久影院
|
亚洲男人天堂2017
|
精品国产免费观看
|
成人久久免费网站
|
亚洲成在人线aⅴ免费毛片
|
性感美女视频在线观看免费精品
|
午夜免费国产体验区免费的
|