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
鵬飛萬里
閱讀(717)
評論(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++博客
博問
<
2008年1月
>
日
一
二
三
四
五
六
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
31
1
2
3
4
5
6
7
8
9
導航
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類(4823)
3.?Lucene如何控制segments的數量?(4673)
4.?javascript的prototype(2523)
5.?Java7 VB2008都開始支持Lambda(Closure)了(2362)
評論排行榜
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 鵬飛萬里
主站蜘蛛池模板:
成人在线免费视频
|
亚洲国产午夜中文字幕精品黄网站
|
午夜福利不卡片在线播放免费
|
丰满妇女做a级毛片免费观看
|
精品亚洲AV无码一区二区三区
|
亚洲女久久久噜噜噜熟女
|
免费国产在线观看不卡
|
国产91色综合久久免费分享
|
国产真人无码作爱视频免费
|
特级毛片免费观看视频
|
亚洲日韩精品A∨片无码加勒比
|
亚洲一卡2卡三卡4卡有限公司
|
久久国产成人精品国产成人亚洲
|
日韩激情淫片免费看
|
台湾一级毛片永久免费
|
91大神在线免费观看
|
好紧我太爽了视频免费国产
|
久久久受www免费人成
|
日韩免费码中文在线观看
|
国产成人亚洲精品91专区高清
|
亚洲 欧洲 日韩 综合在线
|
亚洲精品国产福利在线观看
|
亚洲av无码乱码国产精品
|
亚洲国产精品特色大片观看完整版
|
久久国产成人精品国产成人亚洲
|
亚洲视频免费播放
|
久久综合日韩亚洲精品色
|
亚洲精品乱码久久久久久久久久久久
|
亚洲国产精品人人做人人爱
|
国产大片91精品免费看3
|
国产精品免费综合一区视频
|
女人让男人免费桶爽30分钟
|
成人一a毛片免费视频
|
成人A级毛片免费观看AV网站
|
a拍拍男女免费看全片
|
国产国产人免费视频成69堂
|
97视频免费在线
|
无码国产精品一区二区免费I6
|
又黄又爽又成人免费视频
|
无码中文在线二区免费
|
成人免费视频88
|