codefori / vscode-ibmi

🌍 IBM i development extension for VS Code
https://codefori.github.io/docs/#/
MIT License
288 stars 96 forks source link

The Japanese display of CCSID5035 is garbled. #2108

Open carrotbell opened 5 months ago

carrotbell commented 5 months ago

👉🏻 Issue text goes here. Japanese characters become garbled when updated to version 2.6.5 or later. スクリーンショット 2024-05-23 141021


⚠️ REMOVE THIS LINE AND ANY SENSITIVE INFORMATION BELOW! ⚠️

Context Version
Code for IBM i version 2.10.7
Visual Studio Code version 1.90.0
Operating System win32_x64
Active extensions ``` COBOL (cobol): 10.6.11 Code for IBM i Walkthroughs (vscode-ibmi-walkthroughs): 0.5.0 Db2 for IBM i (vscode-db2i): 1.0.0 Emmet (emmet): 1.0.0 Error Lens (errorlens): 3.18.0 Git (git): 1.0.0 Git Graph (git-graph): 1.30.0 Git ベース (git-base): 1.0.0 GitHub (github): 0.0.1 GitHub 認証 (github-authentication): 0.0.2 GitLens — Git supercharged (gitlens): 15.1.0 IBM i Debug (ibmidebug): 1.0.0 JSON 言語機能 (json-language-features): 1.0.0 Node デバッグの自動アタッチ (debug-auto-launch): 1.0.0 TODO Highlight (vscode-todo-highlight): 1.0.5 TypeScript と JavaScript の言語機能 (typescript-language-features): 1.0.0 マージの競合 (merge-conflict): 1.0.0 ```

Remote system |Setting|Value| |-|-| |IBM i OS|V7R5M0| |Tech Refresh|2| |CCSID Origin|5035| |Runtime CCSID|5035| |Default CCSID|5035| |SQL|Enabled |Source dates|Disabled ### Enabled features |/QOpenSys/pkgs/bin|/usr/bin|/QSYS.lib/ILEDITOR.lib|/QSYS.LIB|/QIBM/ProdData/IBMiDebugService/bin| |-|-|-|-|-| |bash|attr|GETNEWLIBL.PGM|QZDFMDB2.PGM|startDebugService.sh| |chsh|iconv|||| |grep|setccsid|||| |ls|tar|||| |md5sum||||| |sort||||| |stat|||||
Shell env
Variants ```json { "american": "#@$", "local": "#@$" } ```
Errors ```json [ { "command": "/QOpenSys/usr/bin/qsh", "code": 1, "stderr": "CPF2125: \u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a", "cwd": "/home/*" }, { "command": "/QOpenSys/usr/bin/qsh", "code": 1, "stderr": "CPF9801: \u001a\u001a\u001a\u001a\u001a\u001aQSYS\u001a\u001a\u001a\u001a\u001a\u001a\u001aQCPTOIMPF\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a", "cwd": "/home/*" }, { "command": "/QOpenSys/usr/bin/qsh", "code": 1, "stderr": "CPF9801: \u001a\u001a\u001a\u001a\u001a\u001aQSYS\u001a\u001a\u001a\u001a\u001a\u001a\u001aQCPFRMIMPF\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a", "cwd": "/home/*" } ] ```
worksofliam commented 5 months ago

@carrotbell Can you please switch to the pre-release version and let us know if you have the same problem?

carrotbell commented 5 months ago

Thank you for contacting us. The same error occurs in ver 2.11.0. スクリーンショット 2024-06-19 083758

worksofliam commented 5 months ago

@carrotbell Is it only in the object text you're seeing this issue? Are you able to open-sources up as expected too?

carrotbell commented 5 months ago

I can't open the source. スクリーンショット 2024-06-20 085233 Also, if you check the box "Show description of libraries in User Library List view", the user library list will be hidden. スクリーンショット 2024-06-20 114239 In 2.6.5, I unchecked the "Enable SQL" box, but I wonder if that has anything to do with it.

worksofliam commented 5 months ago

Please share the contents of your Code for IBM i output channel after the list doesn't appear.

image
carrotbell commented 4 months ago

Sorry. I am late. Personal data has been deleted.

Immediately after IBM i connection .: echo "This should be the only text!" { "code": 0, "signal": null, "stdout": "This should be the only text!", "stderr": "" } .: echo $HOME && cd && test -w $HOME { "code": 0, "signal": null, "stdout": "/home/", "stderr": "" } /home/: /QOpenSys/usr/bin/qsh liblist { "code": 0, "signal": null, "stdout": "QSYS SYS\nQSYS2 SYS\nQHLPSYS SYS\nQUSRSYS SYS\nQSHELL PRD\nQGPL USR\nQTEMP USR\nQEVX USR\nEVXDBLIB USR\n@FISSYS USR\n USR\n USR\n USR\n USR\n USR", "stderr": "" } /home/: /QOpenSys/usr/bin/qsh system "CRTLIB LIB(ILEDITOR) TEXT('Code for i temporary objects. May be cleared.')" { "code": 1, "signal": null, "stdout": "", "stderr": "CPF2111: \u001a\u001a\u001a\u001a\u001a\u001aILEDITOR\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a" } /home/: [ -d "/tmp" ] { "code": 0, "signal": null, "stdout": "", "stderr": "" } /home/: echo $SHELL { "code": 0, "signal": null, "stdout": "/QOpenSys/pkgs/bin/bash", "stderr": "" } /home/: /usr/bin/attr "/QIBM/ProdData/IBMiDebugService/bin/DebugService.env" CCSID { "code": 0, "signal": null, "stdout": "437", "stderr": "" } /home/: /usr/bin/iconv -f IBM-437 -t UTF-8 "/QIBM/ProdData/IBMiDebugService/bin/DebugService.env" > /tmp/vscodetemp-O_qN0KLj2T { "code": 0, "signal": null, "stdout": "", "stderr": "" } /home/: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')" select LONG_COMMENT from qsys2.sysroutines where routine_schema = 'ILEDITOR' and routine_name = 'GETMBRINFO' { "code": 0, "signal": null, "stdout": "DB2>\n ?>\n\nLONG_COMMENT \n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n1 - Validate member information \n\n 1 RECORD(S) SELECTED.", "stderr": "" } /home/: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')" select job_name, local_port from qsys2.netstat_job_info where cast(local_port_name as VarChar(14) CCSID 37) = 'is-debug-ile' fetch first row only /home/: /usr/bin/attr "/QIBM/ProdData/IBMiDebugService/bin/DebugService.env" CCSID /home/: test -r /QIBM/ProdData/IBMiDebugService/package.json /home/: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')" select job_name, local_port from qsys2.netstat_job_info where cast(local_port_name as VarChar(14) CCSID 37) = 'is-debug-ile' fetch first row only /home/: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')" select OS_VERSION concat '.' concat OS_RELEASE as VERSION from sysibmadm.env_sys_info /home/: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')" select os.OBJNAME as ODOBNM , coalesce(os.OBJTEXT, '') as ODOBTX , os.OBJATTRIBUTE as ODOBAT from table( SYSTOOLS.SPLIT( INPUT_LIST => 'QGPL,QGPL,QTEMP,QEVX,EVXDBLIB,@FISSYS,,,,,', DELIMITER => ',' ) ) libs , table( QSYS2.OBJECT_STATISTICS( OBJECT_SCHEMA => 'QSYS', OBJTYPELIST => '*LIB', OBJECT_NAME => libs.ELEMENT ) ) os { "code": 1, "signal": null, "stdout": "", "stderr": "" } { "code": 0, "signal": null, "stdout": "437", "stderr": "" } /home/: /usr/bin/iconv -f IBM-437 -t UTF-8 "/QIBM/ProdData/IBMiDebugService/bin/DebugService.env" > /tmp/vscodetemp-O_qN0KLj2T { "code": 1, "signal": null, "stdout": "DB2>\n ?>\n\nJOB_NAME LOCAL_PORT \n---------------------------- -----------\n\n 0 RECORD(S) SELECTED.", "stderr": "" } { "code": 0, "signal": null, "stdout": "DB2>\n ?>\n\nVERSION \n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n7.5 \n\n 1 RECORD(S) SELECTED.", "stderr": "" } /home/: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')" select max(ptf_group_level) as HIGHEST_DB2_PTF_GROUP_LEVEL from qsys2.group_ptf_info where PTF_GROUP_DESCRIPTION like 'DB2 FOR IBM I%' and ptf_group_status = 'INSTALLED'; { "code": 1, "signal": null, "stdout": "DB2>\n ?>\n\nJOB_NAME LOCAL_PORT \n---------------------------- -----------\n\n 0 RECORD(S) SELECTED.", "stderr": "" } { "code": 4, "signal": null, "stdout": "DB2>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n\n **** CLI ERROR *****\n SQLSTATE: 57005\nNATIVE ERROR CODE: -666\nSQL QUERY\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a", "stderr": "" } { "code": 0, "signal": null, "stdout": "", "stderr": "" } /home/: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')" select os.OBJNAME as ODOBNM , coalesce(os.OBJTEXT, '') as ODOBTX , os.OBJATTRIBUTE as ODOBAT from table( SYSTOOLS.SPLIT( INPUT_LIST => 'QGPL,QGPL,QTEMP,QEVX,EVXDBLIB,@FISSYS,,,,,', DELIMITER => ',' ) ) libs , table( QSYS2.OBJECT_STATISTICS( OBJECT_SCHEMA => 'QSYS', OBJTYPELIST => '*LIB', OBJECT_NAME => libs.ELEMENT ) ) os /home/: test -r /QIBM/ProdData/IBMiDebugService/package.json { "code": 0, "signal": null, "stdout": "DB2>\n\nHIGHEST_DB2_PTF_GROUP_LEVEL \n----------------------------\n 4\n\n 1 RECORD(S) SELECTED.\n\nDB2>", "stderr": "" } /home/: ls $HOME/.vscode/codeforiserver-1.4.9.jar { "code": 4, "signal": null, "stdout": "DB2>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n\n **** CLI ERROR *****\n SQLSTATE: 57005\nNATIVE ERROR CODE: -666\nSQL QUERY\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a\u001a", "stderr": "" } { "code": 1, "signal": null, "stdout": "", "stderr": "" } /home/: /usr/bin/attr "/QIBM/ProdData/IBMiDebugService/bin/DebugService.env" CCSID { "code": 0, "signal": null, "stdout": "/home//.vscode/codeforiserver-1.4.9.jar", "stderr": "" } { "code": 0, "signal": null, "stdout": "437", "stderr": "" } /home/: /usr/bin/iconv -f IBM-437 -t UTF-8 "/QIBM/ProdData/IBMiDebugService/bin/DebugService.env" > /tmp/vscodetemp-O_qN0KLj2T { "code": 0, "signal": null, "stdout": "", "stderr": "" } /home/: test -f /QIBM/UserData/IBMiDebugService/certs/debug_service.pfx { "code": 0, "signal": null, "stdout": "", "stderr": "" } /home/: test -f /QIBM/UserData/IBMiDebugService/certs/debug_service.crt { "code": 0, "signal": null, "stdout": "", "stderr": "" } /home/: test -f /QIBM/UserData/IBMiDebugService/.code4i.debug { "code": 0, "signal": null, "stdout": "", "stderr": "" } /home/: test -f /QIBM/ProdData/IBMiDebugService/bin/certs/debug_service.pfx { "code": 1, "signal": null, "stdout": "", "stderr": "" }
When the filter is deployed /home/: /QOpenSys/usr/bin/qsh system "CHKOBJ OBJ(/QPGMSRCT) OBJTYPE(*FILE) AUT(*UPD)" { "code": 0, "signal": null, "stdout": "", "stderr": "" } /home/: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')" With MEMBERS As ( SELECT rtrim(cast(a.system_table_schema as char(10) for bit data)) as LIBRARY, b.avgrowsize as RECORD_LENGTH, a.iasp_number as ASP, rtrim(cast(a.system_table_name as char(10) for bit data)) AS SOURCE_FILE, rtrim(cast(b.system_table_member as char(10) for bit data)) as NAME, coalesce(rtrim(cast(b.source_type as varchar(10) for bit data)), '') as TYPE, coalesce(rtrim(varchar(b.partition_text)), '') as TEXT, b.NUMBER_ROWS as LINES, extract(epoch from (b.CREATE_TIMESTAMP))*1000 as CREATED, extract(epoch from (b.LAST_SOURCE_UPDATE_TIMESTAMP))*1000 as CHANGED FROM qsys2.systables AS a JOIN qsys2.syspartitionstat AS b ON b.table_schema = a.table_schema AND b.table_name = a.table_name ) Select * From MEMBERS Where LIBRARY = '' And SOURCE_FILE = 'QPGMSRCT' And NAME Like '%' And TYPE Like '%' Order By NAME ASC { "code": 1, "signal": null, "stdout": "DB2>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n ?>\n\nLIBRARY RECORD_LENGTH ASP SOURCE_FILE NAME TYPE TEXT LINES CREATED CHANGED \n---------- -------------------- ------ ------------ ---------- ---------- ------------------------------------------------------------------------------------------------------------------------------ -------------------- -------------------- --------------------\n\n 0 RECORD(S) SELECTED.", "stderr": "" }