Export from Bitcoin — import to Bitcoin Cash I have address 3GXXiZhq1MZFeWtM6wFUWDA9wSLQh2NU6E, generated by my Bitcoin Core v0.20.0. Accidently I sent Bitcoin Cash there. I use dumpprivkey 3GXXiZhq1MZFeWtM6wFUWDA9wSLQh2NU6E console command and get private key. Then I switch to BCH Unlimited v1.9.0.0-96d2de8d0 and do importprivkey ...... It imports as qqexcx5vkel7lcvny2nm7hq439cd4xvpdvuddlu0fh with zero balance. But address must be pz3tax8neurguwsdn538eh7hfyxmy2pznsgt5ajpk2. Same problem if I import it in blockchain.com. How to access my BCH at 3GXXiZhq1MZFeWtM6wFUWDA9wSLQh2NU6E now?
You are likely importing it as a legacy address, since Bitcoin Cash does not support segwit scripts.
In this scenario, you cannot actually recover the coins yourself. Since segwit isn't activated on the Bitcoin Cash chain, the coins are essentially anyone-can-spend - if you try and build a transaction yourself to move them, other parties on the network will notice that they can be spent by anyone, and there will likely be a few malicious ones who will attempt to take the coins for themselves.
Your best bet, if the value is significant, is to reach out directly to Bitcoin Cash mining pools and ask them to include a transaction directly in a block, without broadcasting it first. You should be able to provide them with the public key, which is sufficient to build the transaction required to move the coins.