-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error while decoding string containing japanese characters #31
Comments
I tried experimenting with various codepages, but none seem to consistently work with this set of lnk files. The best results I've gotten have been through utf-8:
According to liblnk's documentation, unicode strings are stored as utf-16le, but when I try it I get results like this:
|
Hi, I check file from the first ZIP and I think the parsing is correct. You are right that Unicode strings are stored in UTF-16 but in this case LinkInfo part does not contain # Local base path: F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹���も (@sasakomitomo)
>>> self.info._raw[ self.info.local_base_path_offset() : self.info.size() ]
b'F:\\collection\\dls\\hitomi-dl\\hitomi_downloaded_twitter\\\xe7\xac\xb9\xe5\x8f\xa4\xe3\x81\xbf\xe3\x81\xa8\xe3\x82\x82 (@sasakomitomo)\x00\x00'
# Relative path: ..\..\..\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古みとも (@sasakomitomo)
>>> self.string_data._raw[2:164]
b'.\x00.\x00\\\x00.\x00.\x00\\\x00.\x00.\x00\\\x00c\x00o\x00l\x00l\x00e\x00c\x00t\x00i\x00o\x00n\x00\\\x00d\x00l\x00s\x00\\\x00h\x00i\x00t\x00o\x00m\x00i\x00-\x00d\x00l\x00\\\x00h\x00i\x00t\x00o\x00m\x00i\x00_\x00d\x00o\x00w\x00n\x00l\x00o\x00a\x00d\x00e\x00d\x00_\x00t\x00w\x00i\x00t\x00t\x00e\x00r\x00\\\x009{\xe4S\x7f0h0\x820 \x00(\x00@\x00s\x00a\x00s\x00a\x00k\x00o\x00m\x00i\x00t\x00o\x00m\x00o\x00)\x00'
# Value: F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古みとも (@sasakomitomo)
>>> [e for e in self.extras][1]._raw[103:249]
b'F\x00:\x00\\\x00c\x00o\x00l\x00l\x00e\x00c\x00t\x00i\x00o\x00n\x00\\\x00d\x00l\x00s\x00\\\x00h\x00i\x00t\x00o\x00m\x00i\x00-\x00d\x00l\x00)\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x001SPS0\xf1%\xb7\xefG\x1a\x10\xa5\xf1\x02`\x8c\x9e\xeb\xac=\x00\x00\x00\n\x00\x00\x00\x00\x1f\x00\x00\x00\x16\x00\x00\x009{\xe4S\x7f0h0\x820 \x00(\x00@\x00s\x00a\x00s\x00a\x00k\x00o\x00m\x00i\x00t\x00o\x00m\x00o\x00)\x00\x00' Here is complete output:
|
I've tried every codepage identifier listed here but none seem to work... Test scriptimport sys
import LnkParse3
# https://learn.microsoft.com/en-us/windows/win32/intl/code-page-identifiers
code_page_identifiers = [
("037", "IBM037", "IBM EBCDIC US-Canada"),
("437", "IBM437", "OEM United States"),
("500", "IBM500", "IBM EBCDIC International"),
("708", "ASMO-708", "Arabic (ASMO 708)"),
("709", None, "Arabic (ASMO-449+, BCON V4)"),
("710", None, "Arabic - Transparent Arabic"),
("720", "DOS-720", "Arabic (Transparent ASMO); Arabic (DOS)"),
("737", "ibm737", "OEM Greek (formerly 437G); Greek (DOS)"),
("775", "ibm775", "OEM Baltic; Baltic (DOS)"),
("850", "ibm850", "OEM Multilingual Latin 1; Western European (DOS)"),
("852", "ibm852", "OEM Latin 2; Central European (DOS)"),
("855", "IBM855", "OEM Cyrillic (primarily Russian)"),
("857", "ibm857", "OEM Turkish; Turkish (DOS)"),
("858", "IBM00858", "OEM Multilingual Latin 1 + Euro symbol"),
("860", "IBM860", "OEM Portuguese; Portuguese (DOS)"),
("861", "ibm861", "OEM Icelandic; Icelandic (DOS)"),
("862", "DOS-862", "OEM Hebrew; Hebrew (DOS)"),
("863", "IBM863", "OEM French Canadian; French Canadian (DOS)"),
("864", "IBM864", "OEM Arabic; Arabic (864)"),
("865", "IBM865", "OEM Nordic; Nordic (DOS)"),
("866", "cp866", "OEM Russian; Cyrillic (DOS)"),
("869", "ibm869", "OEM Modern Greek; Greek, Modern (DOS)"),
("870", "IBM870", "IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2"),
("874", "windows-874", "Thai (Windows)"),
("875", "cp875", "IBM EBCDIC Greek Modern"),
("932", "shift_jis", "ANSI/OEM Japanese; Japanese (Shift-JIS)"),
("936", "gb2312", "ANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312)"),
("949", "ks_c_5601-1987", "ANSI/OEM Korean (Unified Hangul Code)"),
("950", "big5", "ANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5)"),
("1026", "IBM1026", "IBM EBCDIC Turkish (Latin 5)"),
("1047", "IBM01047", "IBM EBCDIC Latin 1/Open System"),
("1140", "IBM01140", "IBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro)"),
("1141", "IBM01141", "IBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro)"),
("1142", "IBM01142", "IBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro)"),
("1143", "IBM01143", "IBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro)"),
("1144", "IBM01144", "IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro)"),
("1145", "IBM01145", "IBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro)"),
("1146", "IBM01146", "IBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro)"),
("1147", "IBM01147", "IBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro)"),
("1148", "IBM01148", "IBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro)"),
("1149", "IBM01149", "IBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro)"),
("1200", "utf-16", "Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications"),
("1201", "unicodeFFFE", "Unicode UTF-16, big endian byte order; available only to managed applications"),
("1250", "windows-1250", "ANSI Central European; Central European (Windows)"),
("1251", "windows-1251", "ANSI Cyrillic; Cyrillic (Windows)"),
("1252", "windows-1252", "ANSI Latin 1; Western European (Windows)"),
("1253", "windows-1253", "ANSI Greek; Greek (Windows)"),
("1254", "windows-1254", "ANSI Turkish; Turkish (Windows)"),
("1255", "windows-1255", "ANSI Hebrew; Hebrew (Windows)"),
("1256", "windows-1256", "ANSI Arabic; Arabic (Windows)"),
("1257", "windows-1257", "ANSI Baltic; Baltic (Windows)"),
("1258", "windows-1258", "ANSI/OEM Vietnamese; Vietnamese (Windows)"),
("1361", "Johab", "Korean (Johab)"),
("10000", "macintosh", "MAC Roman; Western European (Mac)"),
("10001", "x-mac-japanese", "Japanese (Mac)"),
("10002", "x-mac-chinesetrad", "MAC Traditional Chinese (Big5); Chinese Traditional (Mac)"),
("10003", "x-mac-korean", "Korean (Mac)"),
("10004", "x-mac-arabic", "Arabic (Mac)"),
("10005", "x-mac-hebrew", "Hebrew (Mac)"),
("10006", "x-mac-greek", "Greek (Mac)"),
("10007", "x-mac-cyrillic", "Cyrillic (Mac)"),
("10008", "x-mac-chinesesimp", "MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac)"),
("10010", "x-mac-romanian", "Romanian (Mac)"),
("10017", "x-mac-ukrainian", "Ukrainian (Mac)"),
("10021", "x-mac-thai", "Thai (Mac)"),
("10029", "x-mac-ce", "MAC Latin 2; Central European (Mac)"),
("10079", "x-mac-icelandic", "Icelandic (Mac)"),
("10081", "x-mac-turkish", "Turkish (Mac)"),
("10082", "x-mac-croatian", "Croatian (Mac)"),
("12000", "utf-32", "Unicode UTF-32, little endian byte order; available only to managed applications"),
("12001", "utf-32BE", "Unicode UTF-32, big endian byte order; available only to managed applications"),
("20000", "x-Chinese_CNS", "CNS Taiwan; Chinese Traditional (CNS)"),
("20001", "x-cp20001", "TCA Taiwan"),
("20002", "x_Chinese-Eten", "Eten Taiwan; Chinese Traditional (Eten)"),
("20003", "x-cp20003", "IBM5550 Taiwan"),
("20004", "x-cp20004", "TeleText Taiwan"),
("20005", "x-cp20005", "Wang Taiwan"),
("20105", "x-IA5", "IA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5)"),
("20106", "x-IA5-German", "IA5 German (7-bit)"),
("20107", "x-IA5-Swedish", "IA5 Swedish (7-bit)"),
("20108", "x-IA5-Norwegian", "IA5 Norwegian (7-bit)"),
("20127", "us-ascii", "US-ASCII (7-bit)"),
("20261", "x-cp20261", "T.61"),
("20269", "x-cp20269", "ISO 6937 Non-Spacing Accent"),
("20273", "IBM273", "IBM EBCDIC Germany"),
("20277", "IBM277", "IBM EBCDIC Denmark-Norway"),
("20278", "IBM278", "IBM EBCDIC Finland-Sweden"),
("20280", "IBM280", "IBM EBCDIC Italy"),
("20284", "IBM284", "IBM EBCDIC Latin America-Spain"),
("20285", "IBM285", "IBM EBCDIC United Kingdom"),
("20290", "IBM290", "IBM EBCDIC Japanese Katakana Extended"),
("20297", "IBM297", "IBM EBCDIC France"),
("20420", "IBM420", "IBM EBCDIC Arabic"),
("20423", "IBM423", "IBM EBCDIC Greek"),
("20424", "IBM424", "IBM EBCDIC Hebrew"),
("20833", "x-EBCDIC-KoreanExtended", "IBM EBCDIC Korean Extended"),
("20838", "IBM-Thai", "IBM EBCDIC Thai"),
("20866", "koi8-r", "Russian (KOI8-R); Cyrillic (KOI8-R)"),
("20871", "IBM871", "IBM EBCDIC Icelandic"),
("20880", "IBM880", "IBM EBCDIC Cyrillic Russian"),
("20905", "IBM905", "IBM EBCDIC Turkish"),
("20924", "IBM00924", "IBM EBCDIC Latin 1/Open System (1047 + Euro symbol)"),
("20932", "EUC-JP", "Japanese (JIS 0208-1990 and 0212-1990)"),
("20936", "x-cp20936", "Simplified Chinese (GB2312); Chinese Simplified (GB2312-80)"),
("20949", "x-cp20949", "Korean Wansung"),
("21025", "cp1025", "IBM EBCDIC Cyrillic Serbian-Bulgarian"),
("21027", None, "(deprecated)"),
("21866", "koi8-u", "Ukrainian (KOI8-U); Cyrillic (KOI8-U)"),
("28591", "iso-8859-1", "ISO 8859-1 Latin 1; Western European (ISO)"),
("28592", "iso-8859-2", "ISO 8859-2 Central European; Central European (ISO)"),
("28593", "iso-8859-3", "ISO 8859-3 Latin 3"),
("28594", "iso-8859-4", "ISO 8859-4 Baltic"),
("28595", "iso-8859-5", "ISO 8859-5 Cyrillic"),
("28596", "iso-8859-6", "ISO 8859-6 Arabic"),
("28597", "iso-8859-7", "ISO 8859-7 Greek"),
("28598", "iso-8859-8", "ISO 8859-8 Hebrew; Hebrew (ISO-Visual)"),
("28599", "iso-8859-9", "ISO 8859-9 Turkish"),
("28603", "iso-8859-13", "ISO 8859-13 Estonian"),
("28605", "iso-8859-15", "ISO 8859-15 Latin 9"),
("29001", "x-Europa", "Europa 3"),
("38598", "iso-8859-8-i", "ISO 8859-8 Hebrew; Hebrew (ISO-Logical)"),
("50220", "iso-2022-jp", "ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS)"),
("50221", "csISO2022JP", "ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana)"),
("50222", "iso-2022-jp", "ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI)"),
("50225", "iso-2022-kr", "ISO 2022 Korean"),
("50227", "x-cp50227", "ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022)"),
("50229", "ISO", "2022 Traditional Chinese"),
("50930", None, "EBCDIC Japanese (Katakana) Extended"),
("50931", None, "EBCDIC US-Canada and Japanese"),
("50933", None, "EBCDIC Korean Extended and Korean"),
("50935", None, "EBCDIC Simplified Chinese Extended and Simplified Chinese"),
("50936", None, "EBCDIC Simplified Chinese"),
("50937", None, "EBCDIC US-Canada and Traditional Chinese"),
("50939", None, "EBCDIC Japanese (Latin) Extended and Japanese"),
("51932", "euc-jp", "EUC Japanese"),
("51936", "EUC-CN", "EUC Simplified Chinese; Chinese Simplified (EUC)"),
("51949", "euc-kr", "EUC Korean"),
("51950", "EUC", "Traditional Chinese"),
("52936", "hz-gb-2312", "HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ)"),
("54936", "GB18030", "Windows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030)"),
("57002", "x-iscii-de", "ISCII Devanagari"),
("57003", "x-iscii-be", "ISCII Bangla"),
("57004", "x-iscii-ta", "ISCII Tamil"),
("57005", "x-iscii-te", "ISCII Telugu"),
("57006", "x-iscii-as", "ISCII Assamese"),
("57007", "x-iscii-or", "ISCII Odia"),
("57008", "x-iscii-ka", "ISCII Kannada"),
("57009", "x-iscii-ma", "ISCII Malayalam"),
("57010", "x-iscii-gu", "ISCII Gujarati"),
("57011", "x-iscii-pa", "ISCII Punjabi"),
("65000", "utf-7", "Unicode (UTF-7)"),
("65001", "utf-8", "Unicode (UTF-8)"),
]
def get_target(lnk_path, code_page):
with open(lnk_path, "rb") as indata:
lnk_file = LnkParse3.lnk_file(indata, cp=code_page)
return lnk_file.info.local_base_path()
if __name__ == '__main__':
lnk_path = sys.argv[1]
print("====lnk file info=====")
with open(lnk_path, "rb") as indata:
LnkParse3.lnk_file(indata).print_lnk_file()
print("=========test=========")
for identifier, net_name, additional_info in code_page_identifiers:
print(f'{identifier}, {net_name}, {additional_info}')
try:
print(f'{get_target(lnk_path, identifier)}\n')
except Exception as e:
print(f'{e}\n') OutputD:\libraries\repositories\dev\shortcut2symlink\.venv\Scripts\python.exe D:\libraries\repositories\dev\shortcut2symlink\test.py "F:\workspace\inspiration\DUMP\笹古みとも (@sasakomitomo).lnk"
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹���も (@sasakomitomo)` ('charmap' codec can't decode byte 0x8f in position 58: character maps to <undefined>)
warnings.warn(msg)
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\�¼╣ÕÅñÒü┐Òü¿Òéé (@sasakomitomo)` ('charmap' codec can't decode byte 0xe7 in position 54: character maps to <undefined>)
warnings.warn(msg)
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\νΘ╣λΉΑι�┐ι�Ει�� (@sasakomitomo)` ('charmap' codec can't decode byte 0x81 in position 61: character maps to <undefined>)
warnings.warn(msg)
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\隨ケ蜿、縺ソ縺ィ繧� (@sasakomitomo)` ('cp932' codec can't decode byte 0x82 in position 68: illegal multibyte sequence)
warnings.warn(msg)
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\绗瑰彜銇裤仺銈� (@sasakomitomo)` ('gbk' codec can't decode byte 0x82 in position 68: illegal multibyte sequence)
warnings.warn(msg)
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\寧밧룮�겳�겏�굚 (@sasakomitomo)` ('cp949' codec can't decode byte 0xe3 in position 60: illegal multibyte sequence)
warnings.warn(msg)
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\蝚孵�扎�踴�具�� (@sasakomitomo)` ('cp950' codec can't decode byte 0x8f in position 58: illegal multibyte sequence)
warnings.warn(msg)
====lnk file info=====
Windows Shortcut Information:
Link CLSID: 00021401-0000-0000-C000-000000000046
Link Flags: HasTargetIDList | HasLinkInfo | HasRelativePath | IsUnicode | EnableTargetMetadata - (524427)
File Flags: FILE_ATTRIBUTE_DIRECTORY - (16)
Creation Timestamp: 2023-05-27 01:51:30.558322+00:00
Modified Timestamp: 2023-10-15 07:15:51.716984+00:00
Accessed Timestamp: 2023-10-18 00:31:36.907479+00:00
Icon Index: 0
Window Style: SW_SHOWNORMAL
HotKey: UNSET - UNSET {0x0000}
TARGETS:
Index: 78
ITEMS:
Root Folder
Sort index: Internet Explorer
Guid: B710002F-F5A6-0019-2F46-3A5C00000000
File entry
Flags: Is directory
Modification time: None
File attribute flags: 16
Primary name: collection
File entry
Flags: Is directory
Modification time: None
File attribute flags: 16
Primary name: dls
File entry
Flags: Is directory
Modification time: None
File attribute flags: 16
Primary name: hitomi-dl
File entry
Flags: Is directory
Modification time: None
File attribute flags: 16
Primary name: hitomi_downloaded_twitter
File entry
LINK INFO:
Link info flags: 1
Local base path: F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹���も (@sasakomitomo)
Common path suffix:
LOCAL:
Drive type: 3
Drive serial number: 0x280e8914
Drive type: DRIVE_FIXED
Volume label:
DATA
Relative path: ..\..\..\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古みとも (@sasakomitomo)
EXTRA BLOCKS:
DISTRIBUTED_LINK_TRACKER_BLOCK
Length: 88
Version: 0
Machine identifier: trigun
Droid volume identifier: 056C316C-9975-46CC-A56F-3CF14020D396
Droid file identifier: D8F800EC-6D46-11EE-AE84-5E99434149B5
Birth droid volume identifier: 056C316C-9975-46CC-A56F-3CF14020D396
Birth droid file identifier: D8F800EC-6D46-11EE-AE84-5E99434149B5
METADATA_PROPERTIES_BLOCK
Property store:
Storage:
Version: 0x53505331
Format id: DABD30ED-0043-4789-A7F8-D013A4736622
Serialized property values:
Property:
Id: 100
Value: hitomi_downloaded_twitter (F:\collection\dls\hitomi-dl)
Value type: VT_LPWSTR
Storage:
Version: 0x53505331
Format id: B725F130-47EF-101A-A5F1-02608C9EEBAC
Serialized property values:
Property:
Id: 10
Value: 笹古みとも (@sasakomitomo)
Value type: VT_LPWSTR
Property:
Id: 4
Value: File folder
Value type: VT_LPWSTR
Storage:
Version: 0x53505331
Format id: 28636AA6-953D-11D2-B5D6-00C04FD918D0
Serialized property values:
Property:
Id: 30
Value: F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古みとも (@sasakomitomo)
Value type: VT_LPWSTR
Storage:
Version: 0x53505331
Format id: 446D16B1-8DAD-4870-A748-402EA43D788C
Serialized property values:
Property:
Id: 104
Value: None
Value type: VT_CLSID
=========test=========
037, IBM037, IBM EBCDIC US-Canada
ã�*Ä?%%ÁÄÈÑ?>*À%Ë*ÇÑÈ?_Ñ�À%*ÇÑÈ?_ѬÀ?Ï>%?/ÀÁÀ¬ÈÏÑÈÈÁÊ*XоV±uTa×TayTbb�� Ë/Ë/,?_ÑÈ?_?�
437, IBM437, OEM United States
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古みとも (@sasakomitomo)
500, IBM500, IBM EBCDIC International
ã�*Ä?%%ÁÄÈÑ?>*À%Ë*ÇÑÈ?_Ñ�À%*ÇÑÈ?_Ñ^À?Ï>%?/ÀÁÀ^ÈÏÑÈÈÁÊ*XоV±uTa×TayTbb�� Ë/Ë/,?_ÑÈ?_?�
708, ASMO-708, Arabic (ASMO 708)
unknown encoding: 708
709, None, Arabic (ASMO-449+, BCON V4)
unknown encoding: 709
710, None, Arabic - Transparent Arabic
unknown encoding: 710
720, DOS-720, Arabic (Transparent ASMO); Arabic (DOS)
unknown encoding: 720
737, ibm737, OEM Greek (formerly 437G); Greek (DOS)
unknown encoding: 737
775, ibm775, OEM Baltic; Baltic (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\ń¼╣ÕÅżŃü┐Ńü©Ńéé (@sasakomitomo)
850, ibm850, OEM Multilingual Latin 1; Western European (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\þ¼╣ÕÅñÒü┐Òü¿Òéé (@sasakomitomo)
852, ibm852, OEM Latin 2; Central European (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\šČ╣ňĆĄŃü┐ŃüĘŃéé (@sasakomitomo)
855, IBM855, OEM Cyrillic (primarily Russian)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\уг╣тЈцсЂ┐сЂесѓѓ (@sasakomitomo)
857, ibm857, OEM Turkish; Turkish (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\�¼╣ÕÅñÒü┐Òü¿Òéé (@sasakomitomo)
858, IBM00858, OEM Multilingual Latin 1 + Euro symbol
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\þ¼╣ÕÅñÒü┐Òü¿Òéé (@sasakomitomo)
860, IBM860, OEM Portuguese; Portuguese (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\τ¼╣σÂñπü┐πü¿πéé (@sasakomitomo)
861, ibm861, OEM Icelandic; Icelandic (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\τ¼╣σÅÁπü┐πü¿πéé (@sasakomitomo)
862, DOS-862, OEM Hebrew; Hebrew (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\τ¼╣σןñπב┐πב¿πגג (@sasakomitomo)
863, IBM863, OEM French Canadian; French Canadian (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\τ¼╣σ§¨πü┐πüÎπéé (@sasakomitomo)
864, IBM864, OEM Arabic; Arabic (864)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\ﻫ،٩ﻣ┘¤ﻛ·؟ﻛ·ﺎﻛ∙∙ (@sasakomitomo)
865, IBM865, OEM Nordic; Nordic (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古みとも (@sasakomitomo)
866, cp866, OEM Russian; Cyrillic (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\чм╣хПдуБ┐уБиуВВ (@sasakomitomo)
869, ibm869, OEM Modern Greek; Greek, Modern (DOS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\νΘ╣λΉΑι�┐ι�Ει�� (@sasakomitomo)
870, IBM870, IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2
unknown encoding: 870
874, windows-874, Thai (Windows)
unknown encoding: 874
875, cp875, IBM EBCDIC Greek Modern
unknown encoding: 875
932, shift_jis, ANSI/OEM Japanese; Japanese (Shift-JIS)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\隨ケ蜿、縺ソ縺ィ繧� (@sasakomitomo)
936, gb2312, ANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\绗瑰彜銇裤仺銈� (@sasakomitomo)
949, ks_c_5601-1987, ANSI/OEM Korean (Unified Hangul Code)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\寧밧룮�겳�겏�굚 (@sasakomitomo)
950, big5, ANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\蝚孵�扎�踴�具�� (@sasakomitomo)
1026, IBM1026, IBM EBCDIC Turkish (Latin 5)
ã�*Ä?%%ÁÄÈÑ?>*À%Ë*[ÑÈ?_Ñ�À%*[ÑÈ?_Ñ^À?Ï>%?/ÀÁÀ^ÈÏÑÈÈÁÊ*X]¾V±uTa×TayTbb�� Ë/Ë/,?_ÑÈ?_?�
1047, IBM01047, IBM EBCDIC Latin 1/Open System
unknown encoding: 1047
1140, IBM01140, IBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro)
ã�*Ä?%%ÁÄÈÑ?>*À%Ë*ÇÑÈ?_Ñ�À%*ÇÑÈ?_ѬÀ?Ï>%?/ÀÁÀ¬ÈÏÑÈÈÁÊ*XоV±uTa×TayTbb�� Ë/Ë/,?_ÑÈ?_?�
1141, IBM01141, IBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro)
unknown encoding: 1141
1142, IBM01142, IBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro)
unknown encoding: 1142
1143, IBM01143, IBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro)
unknown encoding: 1143
1144, IBM01144, IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro)
unknown encoding: 1144
1145, IBM01145, IBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro)
unknown encoding: 1145
1146, IBM01146, IBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro)
unknown encoding: 1146
1147, IBM01147, IBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro)
unknown encoding: 1147
1148, IBM01148, IBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro)
unknown encoding: 1148
1149, IBM01149, IBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro)
unknown encoding: 1149
1200, utf-16, Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications
unknown encoding: 1200
1201, unicodeFFFE, Unicode UTF-16, big endian byte order; available only to managed applications
unknown encoding: 1201
1250, windows-1250, ANSI Central European; Central European (Windows)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古��も (@sasakomitomo)
1251, windows-1251, ANSI Cyrillic; Cyrillic (Windows)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古みとも (@sasakomitomo)
1252, windows-1252, ANSI Latin 1; Western European (Windows)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹���も (@sasakomitomo)
1253, windows-1253, ANSI Greek; Greek (Windows)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹���も (@sasakomitomo)
1254, windows-1254, ANSI Turkish; Turkish (Windows)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹���も (@sasakomitomo)
1255, windows-1255, ANSI Hebrew; Hebrew (Windows)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\ח¬¹ו�₪ד�¿ד�¨ד‚‚ (@sasakomitomo)
1256, windows-1256, ANSI Arabic; Arabic (Windows)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹هڈ¤مپ؟مپ¨م‚‚ (@sasakomitomo)
1257, windows-1257, ANSI Baltic; Baltic (Windows)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\ē¬¹å¸¤ć�æć�Øć‚‚ (@sasakomitomo)
1258, windows-1258, ANSI/OEM Vietnamese; Vietnamese (Windows)
F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹å�¤ă�¿ă�¨ă‚‚ (@sasakomitomo)
1361, Johab, Korean (Johab)
unknown encoding: 1361
10000, macintosh, MAC Roman; Western European (Mac)
unknown encoding: 10000
10001, x-mac-japanese, Japanese (Mac)
unknown encoding: 10001
10002, x-mac-chinesetrad, MAC Traditional Chinese (Big5); Chinese Traditional (Mac)
unknown encoding: 10002
10003, x-mac-korean, Korean (Mac)
unknown encoding: 10003
10004, x-mac-arabic, Arabic (Mac)
unknown encoding: 10004
10005, x-mac-hebrew, Hebrew (Mac)
unknown encoding: 10005
10006, x-mac-greek, Greek (Mac)
unknown encoding: 10006
10007, x-mac-cyrillic, Cyrillic (Mac)
unknown encoding: 10007
10008, x-mac-chinesesimp, MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac)
unknown encoding: 10008
10010, x-mac-romanian, Romanian (Mac)
unknown encoding: 10010
10017, x-mac-ukrainian, Ukrainian (Mac)
unknown encoding: 10017
10021, x-mac-thai, Thai (Mac)
unknown encoding: 10021
10029, x-mac-ce, MAC Latin 2; Central European (Mac)
unknown encoding: 10029
10079, x-mac-icelandic, Icelandic (Mac)
unknown encoding: 10079
10081, x-mac-turkish, Turkish (Mac)
unknown encoding: 10081
10082, x-mac-croatian, Croatian (Mac)
unknown encoding: 10082
12000, utf-32, Unicode UTF-32, little endian byte order; available only to managed applications
unknown encoding: 12000
12001, utf-32BE, Unicode UTF-32, big endian byte order; available only to managed applications
unknown encoding: 12001
20000, x-Chinese_CNS, CNS Taiwan; Chinese Traditional (CNS)
unknown encoding: 20000
20001, x-cp20001, TCA Taiwan
unknown encoding: 20001
20002, x_Chinese-Eten, Eten Taiwan; Chinese Traditional (Eten)
unknown encoding: 20002
20003, x-cp20003, IBM5550 Taiwan
unknown encoding: 20003
20004, x-cp20004, TeleText Taiwan
unknown encoding: 20004
20005, x-cp20005, Wang Taiwan
unknown encoding: 20005
20105, x-IA5, IA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5)
unknown encoding: 20105
20106, x-IA5-German, IA5 German (7-bit)
unknown encoding: 20106
20107, x-IA5-Swedish, IA5 Swedish (7-bit)
unknown encoding: 20107
20108, x-IA5-Norwegian, IA5 Norwegian (7-bit)
unknown encoding: 20108
20127, us-ascii, US-ASCII (7-bit)
unknown encoding: 20127
20261, x-cp20261, T.61
unknown encoding: 20261
20269, x-cp20269, ISO 6937 Non-Spacing Accent
unknown encoding: 20269
20273, IBM273, IBM EBCDIC Germany
unknown encoding: 20273
20277, IBM277, IBM EBCDIC Denmark-Norway
unknown encoding: 20277
20278, IBM278, IBM EBCDIC Finland-Sweden
unknown encoding: 20278
20280, IBM280, IBM EBCDIC Italy
unknown encoding: 20280
20284, IBM284, IBM EBCDIC Latin America-Spain
unknown encoding: 20284
20285, IBM285, IBM EBCDIC United Kingdom
unknown encoding: 20285
20290, IBM290, IBM EBCDIC Japanese Katakana Extended
unknown encoding: 20290
20297, IBM297, IBM EBCDIC France
unknown encoding: 20297
20420, IBM420, IBM EBCDIC Arabic
unknown encoding: 20420
20423, IBM423, IBM EBCDIC Greek
unknown encoding: 20423
20424, IBM424, IBM EBCDIC Hebrew
unknown encoding: 20424
20833, x-EBCDIC-KoreanExtended, IBM EBCDIC Korean Extended
unknown encoding: 20833
20838, IBM-Thai, IBM EBCDIC Thai
unknown encoding: 20838
20866, koi8-r, Russian (KOI8-R); Cyrillic (KOI8-R)
unknown encoding: 20866
20871, IBM871, IBM EBCDIC Icelandic
unknown encoding: 20871
20880, IBM880, IBM EBCDIC Cyrillic Russian
unknown encoding: 20880
20905, IBM905, IBM EBCDIC Turkish
unknown encoding: 20905
20924, IBM00924, IBM EBCDIC Latin 1/Open System (1047 + Euro symbol)
unknown encoding: 20924
20932, EUC-JP, Japanese (JIS 0208-1990 and 0212-1990)
unknown encoding: 20932
20936, x-cp20936, Simplified Chinese (GB2312); Chinese Simplified (GB2312-80)
unknown encoding: 20936
20949, x-cp20949, Korean Wansung
unknown encoding: 20949
21025, cp1025, IBM EBCDIC Cyrillic Serbian-Bulgarian
unknown encoding: 21025
21027, None, (deprecated)
unknown encoding: 21027
21866, koi8-u, Ukrainian (KOI8-U); Cyrillic (KOI8-U)
unknown encoding: 21866
28591, iso-8859-1, ISO 8859-1 Latin 1; Western European (ISO)
unknown encoding: 28591
28592, iso-8859-2, ISO 8859-2 Central European; Central European (ISO)
unknown encoding: 28592
28593, iso-8859-3, ISO 8859-3 Latin 3
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古��も (@sasakomitomo)` ('charmap' codec can't decode byte 0x81 in position 61: character maps to <undefined>)
warnings.warn(msg)
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹���も (@sasakomitomo)` ('charmap' codec can't decode byte 0x8f in position 58: character maps to <undefined>)
warnings.warn(msg)
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\ח¬¹ו�₪ד�¿ד�¨ד‚‚ (@sasakomitomo)` ('charmap' codec can't decode byte 0x8f in position 58: character maps to <undefined>)
warnings.warn(msg)
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\ē¬¹å¸¤ć�æć�Øć‚‚ (@sasakomitomo)` ('charmap' codec can't decode byte 0x81 in position 61: character maps to <undefined>)
warnings.warn(msg)
D:\libraries\repositories\dev\shortcut2symlink\.venv\Lib\site-packages\LnkParse3\text_processor.py:26: UserWarning: Error while decoding string `F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹å�¤ă�¿ă�¨ă‚‚ (@sasakomitomo)` ('charmap' codec can't decode byte 0x8f in position 58: character maps to <undefined>)
warnings.warn(msg)
unknown encoding: 28593
28594, iso-8859-4, ISO 8859-4 Baltic
unknown encoding: 28594
28595, iso-8859-5, ISO 8859-5 Cyrillic
unknown encoding: 28595
28596, iso-8859-6, ISO 8859-6 Arabic
unknown encoding: 28596
28597, iso-8859-7, ISO 8859-7 Greek
unknown encoding: 28597
28598, iso-8859-8, ISO 8859-8 Hebrew; Hebrew (ISO-Visual)
unknown encoding: 28598
28599, iso-8859-9, ISO 8859-9 Turkish
unknown encoding: 28599
28603, iso-8859-13, ISO 8859-13 Estonian
unknown encoding: 28603
28605, iso-8859-15, ISO 8859-15 Latin 9
unknown encoding: 28605
29001, x-Europa, Europa 3
unknown encoding: 29001
38598, iso-8859-8-i, ISO 8859-8 Hebrew; Hebrew (ISO-Logical)
unknown encoding: 38598
50220, iso-2022-jp, ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS)
unknown encoding: 50220
50221, csISO2022JP, ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana)
unknown encoding: 50221
50222, iso-2022-jp, ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI)
unknown encoding: 50222
50225, iso-2022-kr, ISO 2022 Korean
unknown encoding: 50225
50227, x-cp50227, ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022)
unknown encoding: 50227
50229, ISO, 2022 Traditional Chinese
unknown encoding: 50229
50930, None, EBCDIC Japanese (Katakana) Extended
unknown encoding: 50930
50931, None, EBCDIC US-Canada and Japanese
unknown encoding: 50931
50933, None, EBCDIC Korean Extended and Korean
unknown encoding: 50933
50935, None, EBCDIC Simplified Chinese Extended and Simplified Chinese
unknown encoding: 50935
50936, None, EBCDIC Simplified Chinese
unknown encoding: 50936
50937, None, EBCDIC US-Canada and Traditional Chinese
unknown encoding: 50937
50939, None, EBCDIC Japanese (Latin) Extended and Japanese
unknown encoding: 50939
51932, euc-jp, EUC Japanese
unknown encoding: 51932
51936, EUC-CN, EUC Simplified Chinese; Chinese Simplified (EUC)
unknown encoding: 51936
51949, euc-kr, EUC Korean
unknown encoding: 51949
51950, EUC, Traditional Chinese
unknown encoding: 51950
52936, hz-gb-2312, HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ)
unknown encoding: 52936
54936, GB18030, Windows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030)
unknown encoding: 54936
57002, x-iscii-de, ISCII Devanagari
unknown encoding: 57002
57003, x-iscii-be, ISCII Bangla
unknown encoding: 57003
57004, x-iscii-ta, ISCII Tamil
unknown encoding: 57004
57005, x-iscii-te, ISCII Telugu
unknown encoding: 57005
57006, x-iscii-as, ISCII Assamese
unknown encoding: 57006
57007, x-iscii-or, ISCII Odia
unknown encoding: 57007
57008, x-iscii-ka, ISCII Kannada
unknown encoding: 57008
57009, x-iscii-ma, ISCII Malayalam
unknown encoding: 57009
57010, x-iscii-gu, ISCII Gujarati
unknown encoding: 57010
57011, x-iscii-pa, ISCII Punjabi
unknown encoding: 57011
65000, utf-7, Unicode (UTF-7)
unknown encoding: 65000
65001, utf-8, Unicode (UTF-8)
unknown encoding: 65001
Process finished with exit code 0
For reference, IsSingleByte : True
BodyName : iso-8859-1
EncodingName : Western European (Windows)
HeaderName : Windows-1252
WebName : Windows-1252
WindowsCodePage : 1252
IsBrowserDisplay : True
IsBrowserSave : True
IsMailNewsDisplay : True
IsMailNewsSave : True
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 1252
|
Hi, sorry for the longer inactivity.
$ lnkparse 笹古みとも\ \(@sasakomitomo\).lnk -c utf-8
...
LINK INFO:
Link info flags: 1
Local base path: F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古みとも (@sasakomitomo)
Common path suffix:
LOCAL:
Drive type: 3
Drive serial number: 0x280e8914
Drive type: DRIVE_FIXED
Volume label:
DATA
Relative path: ..\..\..\collection\dls\hitomi-dl\hitomi_downloaded_twitter\笹古みとも (@sasakomitomo)
...
$ cat lnk.files/𝙄𝙣𝙙𝙞𝙜𝙤\ 🦊\ \(@IndigoBeatss\).lnk
LF
8QU//F:\tY^Hg3(w,/J>V
h`1collectionF .collectionJ1dls8 .dls\1hitomi-dlD .hitomi-dl1hitomi_downloaded_twitterd .hitomi_downloaded_twitter(55D5c5Y5^5\5d >؊ (@IndigoBeatss)p .5D5c5Y5^5\5d >؊ (@IndigoBeatss)N<$$58:(F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\???????????? ?? (@IndigoBeatss)F:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\5D5c5Y5^5\5d >؊ (@IndigoBeatss)[..\..\..\collection\dls\hitomi-dl\hitomi_downloaded_twitter\5D5c5Y5^5\5d >؊ (@IndigoBeatss)`Xdesktop-l0vtu6nl1luFo<@ Ӗ*{l1luFo<@ Ӗ*{Q 1SPS0CGsf"d8hitomi_downloaded_twitter (F:\collection\dls\hitomi-dl)1SPS0%G`Q
5D5c5Y5^5\5d >؊ (@IndigoBeatss))
File folder1SPSjc(=OнVF:\collection\dls\hitomi-dl\hitomi_downloaded_twitter\5D5c5Y5^5\5d >؊ (@IndigoBeatss)91SPSmDpHH@.=xhH
pJrHfֽi% |
It may be a difference between Windows/WSL and Linux, but for the first example, def get_target(lnk_path, code_page):
with open(lnk_path, "rb") as indata:
lnk_file = LnkParse3.lnk_file(indata, cp=code_page)
return lnk_file.info.local_base_path_unicode() or lnk_file.info.local_base_path() Looking at your big test script to test all encodings, I can see that you are looping on your list with for identifier, net_name, additional_info in code_page_identifiers:
print(f'{identifier}, {net_name}, {additional_info}')
try:
print(f'{get_target(lnk_path, identifier)}\n') Could you try with print(f'{get_target(lnk_path, net_name)}\n') # <- Modified for net_name Looking at UTF-8 (the last entry in your list), you end up using Hopefully that will help a little! 🙂 |
With this .lnk file (inside zip) as input, when I run this code:
I receive this error (path :
The text was updated successfully, but these errors were encountered: