私は、次のCプログラムを持っている:スウィフトとCの文字列をフォーマットすると、異なる結果を生成
#include <stdio.h>
int main(int argc, char *argv[argc])
{
printf("%c%c%c", 10, 56, 240);
return 0;
}
私は、出力の小さな違いがあります、
import Foundation
let interpolated = String(format: "%c%c%c", 10, 56, 240)
print("\(interpolated)", terminator: "")
としてスウィフトに翻訳しかし、ファイルに保存されたとき。 Cプログラムの出力:360
\
8(3バイト)
かつ迅速プログラム
8D
(4バイト)
なぜですか?
どのようにファイルに保存しましたか?私の推測では、SwiftはデフォルトでUTF-8を生成します。 – melpomene
私は単純に './program> File.txt'を実行します。 –
SwiftがHaskellやPerlのようなものなら、ファイルハンドル(stdout)にUnicodeテキストをバイトに変換(エンコード)する方法を示すエンコーディングレイヤーがあります。 – melpomene