手工創(chuàng)建的文件和從項(xiàng)目中拷貝出來的文件有何不同
為什么從項(xiàng)目中拷貝出來的utf-8編碼的文件,就可以正常打開?而手工創(chuàng)建的非ANSI編碼(如課程中的utf-8編碼的“聯(lián)”文件)的文件打開時(shí)就會(huì)亂碼?二者有何區(qū)別?
為什么從項(xiàng)目中拷貝出來的utf-8編碼的文件,就可以正常打開?而手工創(chuàng)建的非ANSI編碼(如課程中的utf-8編碼的“聯(lián)”文件)的文件打開時(shí)就會(huì)亂碼?二者有何區(qū)別?
2017-02-05
舉報(bào)
2017-02-10
一切都是由于BOM
當(dāng)我們直接在記事本中直接創(chuàng)建文本文件,
不使用另存為
那么文本文件默認(rèn)以ansi編碼來保存文字信息,卻沒有給他加上BOM,
(BOM)就是該文本編碼格式的標(biāo)記,用來告訴記事本(或者其他軟件這里面的內(nèi)容有什么編碼來解析)
另存為這個(gè)過程就是加了BOM
你沒有另存為就沒有BOM
那么問題來了
記事本說“mdzz,這到底要我怎么解析呢?沒辦法,一個(gè)個(gè)試吧,誒!“
由于默認(rèn)的聯(lián)通,聯(lián),在用ANSI保存時(shí),編碼格式類似UTF-8,所以解析為utf-8,而聯(lián)想不符合utf-8編碼規(guī)則
于是乎
內(nèi)容就生氣了
“。。。。。。。。我明明是以ANSI鎖的的,你卻用utf-8的鑰匙來打開我,,,不開心(~……~),亂碼吧,啊哈哈哈”
我為了3積分打這么多字也不容易啊,點(diǎn)個(gè)贊吧,謝謝!
2017-02-10
另外補(bǔ)充下
BOM:在一個(gè)文本文件或者一段字符編碼前加上幾個(gè)固定的字節(jié)用于識(shí)別:
EF BB BF - 我是UTF-8
FF FE - 我是UTF-16LE
FE FF - 我是UTF-16BE
2017-02-06
兄弟,不要拿那個(gè)"聯(lián)"來說事,你試試其他的,Java是面向?qū)ο蟾叨确庋b的,前期學(xué)習(xí)過多考慮底層實(shí)現(xiàn)不利于學(xué)習(xí),打個(gè)比方,別人把各種工具都做好了,你只要知道怎么用就行了,會(huì)用工具就能干事,你非要知道工具是怎么做的,時(shí)間會(huì)不夠的。再說一句,那個(gè)“聯(lián)”真是一個(gè)巧合。
2017-02-06
電腦上默認(rèn)ANSI 而那個(gè)聯(lián)文件是一種巧合,創(chuàng)建出來的是utf-8,但里面的文字是ANSI編碼存放的,這個(gè)針對(duì)的是電腦的ANSI 認(rèn)不出 這個(gè)直接創(chuàng)建的utf-8,由于字節(jié)可以是任何編碼,文件是存儲(chǔ)這些編碼的地方,那個(gè)直接拷貝出來的utf-8的文件,只是保證了本身自己的編碼規(guī)則。
2017-02-06
簡單的說用什么編碼,就用什么解碼