Skip to content

Coming from ConvertZ ​

RustZ is modelled on ConvertZ 8.02 and ConCmd 1.5. This page shows how the two map onto each other and where they behave differently.

Mapping ​

ConvertZ / ConCmdRustZ
ConvertZ.exerustz (the app)
ConCmd.exerustz-cli
ConCmd.ini, ConvertZ.iniRustZ.ini; the [Data] keys are the same — see Settings file
b5fix.dat, gbfix.dat, BI_TradFix.dat, BI_SimFix.datBuilt into the ConvertZ engine (the 8.02 BI versions)
User fix listsThe custom dictionary (different format and meaning — see below)
Clipboard conversion, the always-on toolbarClipboard conversion on the text page, and running in the background
Folder and file name conversionRename files (Traditional ⇄ Simplified)

In batch files, replacing ConCmd with rustz-cli usually just works:

bat
rem before
ConCmd D:\Projects\app.js /o:UTF8
rem after
rustz-cli D:\Projects\app.js /o:UTF8

Differences in behaviour ​

ConCmdRustZ
Script conversionPer character + fix listsOpenCC phrases by default; use /e:convertz for ConvertZ's results
No /f:Converts according to the target encodingConverts only text that really is the other script (a Traditional UTF-8 file written as Big5 is left as it is)
Backup namename.bak (replaces the extension)original-name.bak (appended), so a.txt and a.js never share a backup; an existing backup is never overwritten (.1.bak, .2.bak…)
Switch prefix/ or -/; - only on Windows, because on macOS/Linux a file named -y could act as a switch
Undecodable bytesWritten as isNot overwritten in place without a backup unless /force is given; exit code 1 when files are skipped
UTF-8 BOMAddBOMtoUTF8=1 in ConCmd.iniOff by default (as in ConvertZ 8.01 and later); /bom or the settings file turns it on
Second argument already existsOverwrittenNeeds /y, so shell-expanded wildcards cannot turn an input into an output
Several inputsOne patternAlso several file names, each overwritten in place
Unchanged filesRewrittenNot rewritten; the modification time stays
Binary filesSkipped by extensionAlso detected by content: files with NUL bytes are skipped (unless /i: is given)
WritingIn placeTemporary file, then rename
PlatformsWindowsmacOS, Windows, Linux

Fix lists are not custom dictionaries ​

A ConvertZ fix list matches text after per-character conversion: the left column is "what the conversion got wrong", the right column the correct form, and it works in one direction. RustZ's custom dictionary matches the original text: a "Simplified ↔ Traditional" pair used in both directions, ahead of the built-in dictionaries.

So old fix lists cannot be imported as they are. The fix lists built into ConvertZ 8.02 are all in the ConvertZ engine already; any rules you added yourself need rewriting as Simplified<Tab>Traditional lines for the custom dictionary.

Not ported yet ​

  • ID3, APE and Ogg tag conversion for audio files.
  • Hotkeys, copying before conversion and pasting after it.
  • Repairing the encoding of file names (ConvertZ's Big5(asc) and GBK(asc) modes); Rename files converts the script only.
  • The built-in fix list editor (use the custom dictionary instead).

Tables derived from ConvertZ are for personal, non-commercial use. OpenCC dictionaries are Apache-2.0.