Well, it looks like the engine is severely broken, then. This is not valid UCCI. I don't know if the Chinese makes any sense, but even if it would, it would not make sense that it prints the usemillisec option twice, or that it prints '2012' so many times. And that it leaves out the 'option' keyword from it, to replace it by -2012- is definitely a UCCI violation.
Now there are tools that can be used to work around such defects. In particular Odd Gunnar Malin's 'InBetween' adapter can be very useful. I have hardly ever used it, though, so I forgot exacty how to use it. (But it comes with a README file that explains it well.) It worked somewhat like this: you run it in stead of the engine, and it looks in a file in its directory (inbetween.ini?) to see where the real engine is, and how it should interfere with the communiation in either direction. You can specify that by including lines in an engine-to-gui and a gui-to-engine section, which look like
stringA := stringB
where any occurrence of stringA in the communication stream would then be relaced by stringB before it is passed on. In this case it seems enough to have
-2012- := option
in the engine to GUI section. InBetween would then have to be put between UCI2WB and the engine, by writing as engine line in WinBoard's engine list
(Assuming you put InBetween.exe in the same folder as WinBoard and UCI2WB.exe). It could be that you can specify the name of the ini file used by InBetween on its command line, which would be useful when you want to use it for several engines, which need different fixes. In that case you would have to write something like
'UCI2WB "InBetween qfx.ini"'
where qfx.ini would then contain the instructions to InBetween for starting up bgc0121-4u.exe, and which substitutions to make for it. It seems the engine also does not report it has a Hash option. Which probably means it will disobey the WinBoard hash-table-size settings.
It would be better to ask the engine author to fix it, though. BugCChess was originally written by Liuzy, who actually provided the simplified-Chinese translation for WinBoard for the strings that were not yet in 4.2.7 (which was translated by Morning Yellow). He put the Hash and usemillisec option in BugCChess at my request, (after complaining that UCCI2WB sent it the time in seconds) because it seems that other UCCI interfaces completely ignore any options the engine sends. This in turn has inspired lazy engine authors to not send the options at all, even when they expect the GUI to set them! (Apparently these do not have an "Engine Settings" dialog like WinBoard.) This is also a clear UCCI protocol violation, and the only way I can imagine they would get away with it, is if the user somehow has to indicate for each engine separately whether is should use millisec or not. (Or perhaps they simply do not work for engines that do not use millisec). But when other interfaces ignore the UCCI options anyway, I can imagine it doesn't get noticed easily when the engine is broken in this respect.