改行文字がエンコードされた文字列の一部にならないように、バイナリ データをエンコード/デコードする方法を考え出そうとしています。
再帰的な問題のようですが、解決策が見つからないようです。
例: 素朴な実装:
>>> original = 'binary\ndata'
>>> encoded = original.replace('\n', '=n')
'binary=ndata'
>>> decoded = original.replace('=n', '\n')
'binary\ndata'
元の文字列に既に a がある場合はどう=n
なりますか?
>>> original = 'binary\ndata=n'
>>> encoded = original.replace('\n', '=n')
'binary=ndata=n'
>>> decoded = original.replace('=n', '\n')
'binary\ndata\n' # wrong
既存=n
の をエスケープしようとしますが、エスケープされた が既にある場合はどうなり=n
ますか?
>>> original = '++nbinary\ndata=n'
>>> encoded = original.replace('=n', '++n').replace('\n', '=n')
'++nbinary=ndata++n'
この再帰的な問題を回避するにはどうすればよいですか?