私はAntでこれを行おうとしています:
<echo message="[44;1;37mSuccess![m" />
しかし、それは機能しません:
BUILD FAILED
./build.xml:92: Character reference "&#
どうやってするの?
0x1B文字はXMLコンテンツでは無効です( XMLでは無効な文字)。したがって、いくつかの回避策が必要です。javascriptの回避策を使用しますが、さらに2つの解決策を示します。
<script language="javascript">
project.setNewProperty("esc", "\u001b");
</script>
<echo>${esc}</echo>
ファイルに出力する場合は、最初にjavaエスケープを使用して出力し\u001b
、次に逆Native2Asciiルーチンを使用して変換します。選択したエンコーディングに関係なく、常にシーケンスをデコードし\u
ます。
<echo file="a.enc">\u001b</echo>
<native2ascii includes="a.enc" ext=".txt" dest="${basedir}"
encoding="iso-8859-1" reverse="true" />
最後に、ファイルに不幸な文字列定数が含まれている可能性があります。
<property file="prop.txt" />
<echo>myEsc:${myEsc}</echo>
prop.txt
内容は次のとおりです。
myEsc=\u001b
単にCDATAを使用してください:
<project>
<echo><![CDATA[
[44;1;37mSuccess![m
]]>
</echo>
</project>
&はantの特殊文字なので、'に置き換える必要があります
<echo message="&#27;[44;1;37mSuccess!&#27;[m" />