2

bash (Linux) で C# コードと同等のコードを見つけようとしています。

私はこのC#コードを持っています:

// C# to convert a byte array to a string.
byte [] dBytes = ...
string str;
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
str = enc.GetString(dBytes);

fedora Linux マシンで bash を実行しています。

次のように、空白で区切られたテキストとしてすべてのバイト配列を含むファイルをbashで取得しています。

「72 0 101 0 108 0 108 0 111 0 32 0 87 0 111 0 114 0 108 0 100 0 33 0」

何か案は?

4

2 に答える 2

0

これらのバイトは、UTF-8 ではなく、UTF-16LE エンコーディングです。Python スクリプトは次のようになります。

file = codecs.open('xx.txt', 'r', 'utf-16-le')
ustring = file.read() #this is a unicode string, not a normal python string
print ustring
于 2013-03-07T08:51:32.147 に答える
0

最終的に私はPythonでそれを行い、私のbashスクリプトからPythonスクリプトを呼び出しました:

file = open('xx.txt', 'r')
inputText = file.read()
split = inputText.split(" ")
noZeros= filter (lambda a: a != "0", split)
results = map(int, noZeros)
final = "".join(map(chr, results))
print final
于 2013-03-06T12:38:08.030 に答える