I think your problem might be IBM’s double-byte character system (DBCS). IBM represents each Korean character as two bytes. In order to “shift” into reading the characters two at a time, IBM looks for the “shift-in” character which is (I think) hex 0E. It then interprets each following byte in couplets until it detects the “shift-out” character. I think the shift out is hex 0F. A visual example laid out in hex:
0e F1F2 F3F4 F5F6 0f
Shift-in, two byte characters hex F1F2, F3F4, and F5F6, and then the shift-out. Your two byte discrepancy may be due to the shift-in/shift-out characters. It’s been about ten years since I had to deal with this in Korea and I’ve forgotten a lot about it.