[英]How does vbscript filesystemobject encode characters?
我有這個 vbscript 代碼:
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile("tmp.txt", 2, True)
for i = 128 to 255
s = chr(i)
if lenb(s) <>2 then
wscript.echo i
wscript.quit
end if
ts.write s
next
ts.close
在我的系統上,每個整數都轉換為雙字節字符:該范圍內沒有不能用字符表示的數字,也沒有數字需要超過 2 個字節。 但是當我查看文件時,我發現只有 127 個字節。
這個答案: https : //stackoverflow.com/a/31436726/1335492建議 FSO 創建 UTF 文件並插入 BOM。 但該文件僅包含 127 個字節,並且沒有 Byte Order Mark。
FSO 如何決定如何編碼文本? 什么編碼允許 8 位單字節字符? 哪些編碼不包含 255 個 8 位單字節字符?
(關於 FSO 如何讀取字符的答案也可能很有趣,但這不是我在這里特別要問的)
編輯:我已經將我的問題限制在高位字符上,以明確問題是什么。 (關於低位字符的答案也可能很有趣,但這不是我在這里特別要問的)
我有這個 vbscript 代碼:
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile("tmp.txt", 2, True)
for i = 128 to 255
s = chr(i)
if lenb(s) <>2 then
wscript.echo i
wscript.quit
end if
ts.write s
next
ts.close
在我的系統上,每個整數都轉換為雙字節字符:該范圍內沒有不能用字符表示的數字,也沒有數字需要超過 2 個字節。 但是當我查看文件時,我發現只有 127 個字節。
這個答案: https : //stackoverflow.com/a/31436726/1335492建議FSO創建UTF文件並插入BOM。 但是該文件僅包含127個字節,沒有字節順序標記。
FSO 如何決定如何編碼文本? 什么編碼允許 8 位單字節字符? 哪些編碼不包含 255 個 8 位單字節字符?
(關於 FSO 如何讀取字符的答案也可能很有趣,但這不是我在這里特別要問的)
編輯:我將我的問題限制在高位字符上,以明確問題是什么。 (有關低位字符的答案也可能很有趣,但這不是我在這里特別要問的)
我有這個 vbscript 代碼:
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile("tmp.txt", 2, True)
for i = 128 to 255
s = chr(i)
if lenb(s) <>2 then
wscript.echo i
wscript.quit
end if
ts.write s
next
ts.close
在我的系統上,每個整數都轉換為雙字節字符:該范圍內沒有不能用字符表示的數字,也沒有數字需要超過 2 個字節。 但是當我查看文件時,我發現只有 127 個字節。
這個答案: https : //stackoverflow.com/a/31436726/1335492建議FSO創建UTF文件並插入BOM。 但是該文件僅包含127個字節,沒有字節順序標記。
FSO 如何決定如何編碼文本? 什么編碼允許 8 位單字節字符? 哪些編碼不包含 255 個 8 位單字節字符?
(關於 FSO 如何讀取字符的答案也可能很有趣,但這不是我在這里特別要問的)
編輯:我將我的問題限制在高位字符上,以明確問題是什么。 (有關低位字符的答案也可能很有趣,但這不是我在這里特別要問的)
ReadLine() 不工作 fpr Unicode,他讀取所有文件 :(
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.