Звучит так, будто вы стали жертвой неправильного понимания основ Юникода и кодировок.Возможно, у вас нет, но недоразумения распространены и понятны, а описываемая вами ситуация - нет.
Строка байтов, содержащая смешанные кодировки, по определению, недопустима в любой из этих кодировок.Если бы это действительно было так, вам пришлось бы разбить строку байтов на ее части и декодировать каждую часть отдельно.В этом случае это, вероятно, будет означать разделение на разделители пути, поэтому это будет достаточно просто, но в других случаях это не так.Тем не менее, я серьезно сомневаюсь, что это так, поскольку это будет означать, что ваш источник безумен.Такое бывает, но вряд ли.: -)
Если источник дает вам один путь в виде строки байтов, наиболее вероятно, что эта строка использует только одну кодировку. Может содержать как японские, так и ASCII-символы и все еще использовать одну кодировку. Наиболее распространенными кодировками, которые могут обрабатывать как японский, так и ASCII, являются UTF-8 и UTF-16.Я предполагаю, что ваш источник использует один из них.Фактически, поскольку вы пишете «Один байт используется для каждого символа ascii, а два байта используются для каждого символа японского языка», это, вероятно, UTF-8.Это также может быть Shift JIS, но, похоже, вы уже пробовали это.
Если нет, объясните, пожалуйста, каков ваш источник, и приведите примеры байтовых строк (в ASCII / HEX), которые вам даны.