Thank everyone for warm response!
I tested it with the ideas provided by Sjoerd Smit.
In the test, I read two compressed files.
The filename of the data in one compressed file is composed of english and numbers, and the name of the other data contains traditional chinese (but I don't know why it is garbled).
It turns out that if the data name in the compressed file is not garbled, the data can read normally.
So I think the real problem should be the issue of the filename.
Due to a large of these important historical data, I am improbable to modify the data names in the compressed file one by one.
Therefore, I still need to find a solution to this problem.