2017-09-12 15 views
0

私は部分文字列を置き換える関数を書いています(laguangeにはこれがありません、grr)、私の出力には奇妙な文字があります。なぜ私は理解できません。DXL - 予期しない文字出力

string replaceSubstring(string input, string targetSubstring, string substitute, bool matchCase) 
{ 
    string result = input 
    Buffer b = create 
    b = input 
    int targetStartPos 
    int targetLength 

    while (findPlainText(result, targetSubstring, targetStartPos, targetLength, matchCase)) 
    { 
     string prefixStr = b[0:targetStartPos - 1] 
     string suffixStr = b[targetStartPos + targetLength:] 

     b = prefixStr substitute suffixStr 
     result = tempStringOf(b) 
    } 

    delete b 
    return result 
} 

print replaceSubstring("Jake Lewis", "ake", "ack", false)を実行している、私は�*��*�isの出力を取得します。これは何らかのエンコードの問題のように見えますが、これがどのように起こっているのか、それを修正する方法が不明です。

+0

私は明らかに「Jack Lewis」の出力を期待しています –

+0

質問に答えることはできませんが、これはあなたが見逃した次の機能に役立ちます。既に実装があります。https:/ /www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014891187およびhttp://www.capri-soft.de/blog/?p=832を参照してください。 – Twonky

+0

うわー、これらは救世主です、ありがとう –

答えて

1

tempStringOf()の代わりにstringOf()を試してみてください。処理は正常ですが、bを削除した後に結果が無効になります。

+0

素晴らしい作品、ありがとう –