我有同時具有ASCII文本和二進制內容如何可以分析二進制和ASCII combinatio N文件
當我解析該文件以UTF-8編碼類型
ASCII型部件是可讀文件,但是二進制編碼部分不能讀取。
並且整個長度都是正確的。因此該文件的編碼類型是UTF-8。
但我怎麼能解析java程序的二進制編碼部分?
我有同時具有ASCII文本和二進制內容如何可以分析二進制和ASCII combinatio N文件
當我解析該文件以UTF-8編碼類型
ASCII型部件是可讀文件,但是二進制編碼部分不能讀取。
並且整個長度都是正確的。因此該文件的編碼類型是UTF-8。
但我怎麼能解析java程序的二進制編碼部分?
您可以嘗試讀取1個字節並決定: - 它是ASCII或可能是UTF-8(如果大於127,可能比UTF-8) - 如果是ASCII,則不會添加到字符串和狀態重置。
如果也許UTF-8: 讀取的第二部分:下一個字節。 如果最後2個字節是UTF-8比添加到字符串和狀態重置 如果不是一個可接受的UTF-8字符,比最後2個字節是二進制數據:添加到數據隊列。
處理下一個字節直到文件結束。
在這種情況下,您將擁有所有可能的ASCII和所有可能的UTF-8字符,並保留dor數據。
可當readed字符是在數據的情況下,有沒有辦法知道,直到你有原始文件descriptior。例如: 在位置1000處開始數據塊直到.... pos 2000. 在位置2000開始直到2500 ASCII字符串 等等。
我希望它有幫助
非常感謝。 – nofixing
取決於。
閱讀文件爲二進制,也許作爲一個字節緩衝區,所以字節序列可能被拾起爲字符串。
或者,如果你能做出格式的語法,這將是可行太:在字節級匹配關鍵字String.getBytes("UTF-8")
。 StringTemplate如果你真的想在gramamr解決方案中付出努力。
你的問題根本不清楚...... 如果是二進制文件,你爲什麼要閱讀它?你只是不能,如果它是一個二進制文件(http://en.wikipedia.org/wiki/Binary_file) 我不認爲這是一個utf8的問題。但也許我錯了告訴我們更多關於你已經做了什麼,你想要什麼 – Marc