I have a Python script which changes unicodes to it's real characters like this:
import json
def convert_unicode_to_hangul(data):
if isinstance(data, dict):
return {key: convert_unicode_to_hangul(value) for key, value in data.items()}
elif isinstance(data, list):
return [convert_unicode_to_hangul(item) for item in data]
elif isinstance(data, str):
return data.encode('euc_kr').decode('cp949')
else:
return data
# Open the file and read its contents
with open('script.json', 'r', encoding="utf-8") as f:
input_data = json.load(f)
output_data = convert_unicode_to_hangul(input_data)
output_json = json.dumps(output_data, ensure_ascii=False, indent=2)
# Create the output filename with the desired postfix
output_filename = f"script_out.json"
# Write the output data to a new file
with open(output_filename, 'w', encoding="utf-8") as f:
json.dump(output_data, f, ensure_ascii=False, indent=2)
The problem is even if it works with first characters, it somehow doesn't translate well, I don't know what I am missing here.
Sample input:
{
"ScriptMethod": [
{
"Address": 25744128,
"Name": "\uAC04\uAC28_TypeInfo",
"Signature": "___505_c*"
},
{
"Address": 25744184,
"Name": "System.Xml.AttributePSVIInfo_TypeInfo",
"Signature": "System_Xml_AttributePSVIInfo_c*"
},
{
"Address": 25744216,
"Name": "\uAC04\uAC2C_TypeInfo",
"Signature": "___509_c*"
},
{
"Address": 19592624,
"Name": "\uAC03\uAC29.\uAC03\uAC28$$\uAC08\uAC00",
"Signature": "void _________ (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "vii"
},
{
"Address": 2331904,
"Name": "\uAC03\uAC29.\uAC03\uAC28$$\uAC02\uAC11\uAC3D",
"Signature": "Il2CppObject* __________ (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "iii"
},
{
"Address": 2331904,
"Name": "\uAC03\uAC29.\uAC03\uAC28$$\uAC02\uAC02\uAC21",
"Signature": "Il2CppObject* __________ (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "iii"
},
{
"Address": 19590352,
"Name": "\uAC03\uAC29.\uAC03\uAC28$$MoveNext",
"Signature": "bool _______MoveNext (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "iii"
}
]
}
Desired result:
{
"ScriptMethod": [
{
"Address": 25744128,
"Name": "간갨_TypeInfo",
"Signature": "___505_c*"
},
{
"Address": 25744184,
"Name": "System.Xml.AttributePSVIInfo_TypeInfo",
"Signature": "System_Xml_AttributePSVIInfo_c*"
},
{
"Address": 25744216,
"Name": "간갬_TypeInfo",
"Signature": "___509_c*"
},
{
"Address": 19592624,
"Name": "갃갩.갃갨$$갈가",
"Signature": "void _________ (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "vii"
},
{
"Address": 2331904,
"Name": "갃갩.갃갨$$갂갑갽",
"Signature": "Il2CppObject* __________ (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "iii"
},
{
"Address": 2331904,
"Name": "갃갩.갃갨$$갂갂갡",
"Signature": "Il2CppObject* __________ (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "iii"
},
{
"Address": 19590352,
"Name": "갃갩.갃갨$$MoveNext",
"Signature": "bool _______MoveNext (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "iii"
}
]
}
Current output:
{
"ScriptMethod": [
{
"Address": 25744128,
"Name": "간ㅤㄱㅐㄽ_TypeInfo",
"Signature": "___505_c*"
},
{
"Address": 25744184,
"Name": "System.Xml.AttributePSVIInfo_TypeInfo",
"Signature": "System_Xml_AttributePSVIInfo_c*"
},
{
"Address": 25744216,
"Name": "간갬_TypeInfo",
"Signature": "___509_c*"
},
{
"Address": 19592624,
"Name": "ㅤㄱㅏㄳㅤㄱㅐㄾ.ㅤㄱㅏㄳㅤㄱㅐㄽ$$갈가",
"Signature": "void _________ (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "vii"
},
{
"Address": 2331904,
"Name": "ㅤㄱㅏㄳㅤㄱㅐㄾ.ㅤㄱㅏㄳㅤㄱㅐㄽ$$ㅤㄱㅏㄲ갑ㅤㄱㅑㄵ",
"Signature": "Il2CppObject* __________ (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "iii"
},
{
"Address": 2331904,
"Name": "ㅤㄱㅏㄳㅤㄱㅐㄾ.ㅤㄱㅏㄳㅤㄱㅐㄽ$$ㅤㄱㅏㄲㅤㄱㅏㄲㅤㄱㅐㄵ",
"Signature": "Il2CppObject* __________ (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "iii"
},
{
"Address": 19590352,
"Name": "ㅤㄱㅏㄳㅤㄱㅐㄾ.ㅤㄱㅏㄳㅤㄱㅐㄽ$$MoveNext",
"Signature": "bool _______MoveNext (______39_o* __this, const MethodInfo* method);",
"TypeSignature": "iii"
}
]
}
What should I change in order to get result like it is expected?