首页 > 试题广场 >

The Orchid Pavilion(兰亭集序) is w

[不定项选择题]
The Orchid Pavilion(兰亭集序) is well known as the top of “行书”in history of Chinese literature. The most fascinating sentence is "Well I know it is a lie to say that life and death is the same thing, and that longevity and early death make no difference Alas!"(固知一死生为虚诞,齐彭殇为妄作).By counting the characters of the whole content (in Chinese version),the result should be 391(including punctuation). For these characters written to a text file,please select the possible file size without any data corrupt.
  • 782 bytes in UTF-16 encoding
  • 784 bytes in UTF-16 encoding
  • 1173 bytes in UTF-8 encoding
  • 1176 bytes in UTF-8 encoding
  • None of above
推荐
B D

如果只是论一个汉字占用的字节数,那么 UTF-8 占用3个字节, UTF-16 占用2个字节。但是如果存储文本的话,需要在文本使用 EF BB BF 三个字节表示使用 UTF-8 编码,使用 FE FF 表示使用 UTF-16 编码。

UTF-16 固定表示两个字节表示一个字符,不管是字母还是汉字; UTF-8 使用 1- 3 个字节表示一个字符

  • 0xxxxxxx 一个字节兼容ASCII,能表示127个字符
  • 110xxxxx 10xxxxxx.如果是这样的格式,则把两个字节当一个字符
  • 1110xxxx 10xxxxxx 10xxxxxx 如果是这种格式则是三个字节当一个字符
所以,UTF-8的空间是根据保存的内容不同而不同。如果保存的汉字多,使用 UTF-16 占用字符数双倍的空间,使用 UTF-8 占用字符数三倍的空间;如果保存的英文字母多,使用 UTF-16 使用字符数双倍的空间,使用 UTF-8 使用字符数相同的空间。

所以,不同情况下有不同的选择,这也是这么多字符集和编码格式存在的原因之一。
编辑于 2015-02-07 15:03:36 回复(14)
rank NO.1的回答的很好,但是在实际的工程中还是有区别的
在实际的情况下,UTF-8的文件不会添加BOM头在文件中(应该只有windows记事本默认添加这三个字节的BOM头),所以严格来讲C也是可以选择的。
发表于 2016-10-29 23:23:40 回复(0)
UTF8可以没有BOM,而且一般建议是不要有BOM的。(然而弱智vc坚持看到BOM才把源文件当作UTF8。)
实际上UTF8根本没有byte order的问题,然而某些人决定使用开头的三个字节标识“这是UTF8”编码的文件。
发表于 2017-04-02 16:34:45 回复(0)
utf8占用三个字节,utf16占用2个字节
发表于 2016-05-18 22:21:17 回复(0)
2 * 391 + 2, C: 3 * 391 + 3.
+2和+3是最后的结束符号
发表于 2015-08-20 12:54:17 回复(9)
mark。在计算机中,表示汉字时,UTF-16是用2个字节,UTF-8是用三个字节。如果保存成文本文件,还需要标识,UTF-16占用两个字节,UTF-8占用三个字节。
发表于 2017-01-29 11:04:08 回复(1)
题目中说的是《兰亭集序》***有391个汉字

    在UTF-16的情况下:一个汉字是两个字节,所以是391*2=782,最后在加上UTF-16标识符所占用的位置就是782+2=784;
    同理,在UTF-8的情况下:一个汉字是三个字节,所以是391*3=1173,最后再加上UTF-8标识符占用的位置就是1173+3=1176.

    (注意选项中的bytes是字节的单位,不是位的单位(bit))
发表于 2018-09-09 14:45:28 回复(0)
该题易错点是结束符,文本文档结束符要计算进去,不能只算普通字符。
发表于 2020-03-11 20:15:29 回复(0)
我缺的是词汇量
发表于 2019-09-26 12:41:19 回复(0)
为保证能够存储如图所示的字符,应该选择最大的存储空间
发表于 2019-09-02 10:16:02 回复(0)
答案不管,先把原句和译文抄一遍爽一下
发表于 2019-08-27 16:45:48 回复(0)
编辑于 2019-03-16 00:29:17 回复(0)

如果只是论一个汉字占用的字节数,那么 UTF-8 占用3个字节, UTF-16 占用2个字节。但是如果存储文本的话,需要在文本使用 EF BB BF 三个字节表示使用 UTF-8 编码,使用 FE FF 表示使用 UTF-16 编码。

 
UTF-16 固定表示两个字节表示一个字符,不管是字母还是汉字; UTF-8 使用 1- 3 个字节表示一个字符
 
  • 0xxxxxxx 一个字节兼容ASCII,能表示127个字符
  • 110xxxxx 10xxxxxx.如果是这样的格式,则把两个字节当一个字符
  • 1110xxxx 10xxxxxx 10xxxxxx 如果是这种格式则是三个字节当一个字符
所以,UTF-8的空间是根据保存的内容不同而不同。如果保存的汉字多,使用 UTF-16 占用字符数双倍的空间,使用 UTF-8 占用字符数三倍的空间;如果保存的英文字母多,使用 UTF-16 使用字符数双倍的空间,使用 UTF-8 使用字符数相同的空间。
 
所以,不同情况下有不同的选择,这也是这么多字符集和编码格式存在的原因之一。
不过,也有人说UTF-8编码的时候,占用空间为: 字母数 + 汉字数*3 + 3
 
最后,本题答案:2 * 391 + 2 = 784 bytes in UTF-16 encoding
3 * 391 + 3 = 1176 bytes in UTF-8 encoding
发表于 2018-04-29 16:10:22 回复(0)
如果只是论一个汉字占用的字节数,那么 UTF-8 占用3个字节, UTF-16 占用2个字节。但是如果存储文本的话,需要在文本使用 EF BB BF 三个字节表示使用 UTF-8 编码,使用 FE FF 表示使用 UTF-16 编码。
发表于 2018-04-25 17:40:24 回复(0)
UTF-16用两个字节表示一个汉字;
UTF-8用三个字节表示一个汉字;
都需要加上一个结束符号。
发表于 2017-11-17 17:03:33 回复(0)
完全避开正确答案,没加结束符。。
发表于 2017-03-09 17:02:16 回复(1)
所以說要數多少個字母?
发表于 2016-09-08 10:12:50 回复(1)
class BinarySearch {
public:
    int getPos(vector<int> A, int n, int val) {
        // write code here
        int low = 0;
        int high = n-1;
        int mid = 0;
        while(low<=high)
            {
               mid = (low+high)/2;
            
               if(A.at(mid)==val)
                   {
                   if(mid==0||(mid>0&&A.at(mid-1)!=val))
                      return mid;
                   }
                   
              
                   if(A.at(mid)>=val)
                      high = mid - 1;
                   else
                      low = low + 1;
            }
        return -1;
    }
    
};
发表于 2016-09-07 20:43:55 回复(0)
蒙的
发表于 2016-06-28 09:22:58 回复(0)
还要加上最后的结束符
发表于 2015-09-05 00:12:48 回复(0)