Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Nhập xuất tiếng Việt

  1. #1
    Ngày gia nhập
    08 2017
    Bài viết
    951

    Mặc định Nhập xuất tiếng Việt

    Nhập xuất tiếng Việt không phải là vấn đề lớn, không có chi là ghê gớm, nó chỉ bình thường cho các LTV, cho người sử dụng.

    Nhưng các giáo sư, tiến sĩ đâu cần tới nó, họ đề cao chuyện trên giời, hướng tới vĩ mô, cong nghẹ 4 chấm 0 thời a vòng cho máo lửa

    Bàn mãi chẳng tới đầu, tới đâu

  2. #2
    Ngày gia nhập
    08 2017
    Bài viết
    951

    01. Với cs (netExec)
    Visual C# Code:
    1. using System;
    2. using System.Text;
    3. using System.Runtime.InteropServices;
    4.  
    5. static class Program{
    6.     [DllImport("kernel32.dll", SetLastError = true)]
    7.     static extern IntPtr GetStdHandle(int nStdHandle);
    8.  
    9.     [DllImport("kernel32.dll")]
    10.     static extern bool ReadConsoleW(IntPtr hConsoleInput, byte[] lpBuffer, uint nNumberOfCharsToRead, out uint lpNumberOfCharsRead,
    11.      IntPtr lpReserved);
    12.  
    13.     public static IntPtr GetWin32InputHandle(){
    14.         return GetStdHandle(-10);
    15.     }
    16.  
    17.     public static string _ReadLine(){
    18.         const int bufferSize = 1024;
    19.         byte[] buffer = new byte[bufferSize];
    20.         uint charsRead = 0;
    21.  
    22.         ReadConsoleW(GetWin32InputHandle(), buffer, bufferSize, out charsRead, (IntPtr)0);
    23.         // -2 to remove ending \n\r
    24.         int nc = ((int)charsRead - 2) * 2;
    25.         byte[] b = new byte[nc];
    26.         for (int i = 0; i < nc; i++)
    27.           b[i] = buffer[i];
    28.  
    29.         Encoding utf8enc = Encoding.UTF8;
    30.         return utf8enc.GetString(Encoding.Convert(Encoding.Unicode, utf8enc, b));
    31.     }
    32.  
    33.     static void Main(){
    34.         Console.OutputEncoding = Encoding.UTF8;    
    35.         Console.Write("Xin chào, bạn tên gì: ");
    36.  
    37.         string s = _ReadLine();    
    38.         //Console.WriteLine("s.Length = {0}", s.Length);
    39.        
    40.         Console.WriteLine("{0}, tạm biệt, hẹn gặp lại", s);
    41.         Console.Write("\nDone, bye.");
    42.     }
    43. }

    Biên dịch, chạy thử:


    ...

  3. #3
    Ngày gia nhập
    08 2017
    Bài viết
    951

    02. Với c/c++ bạn có thể xem :
    - http://diendan.congdongcviet.com/threads/t401853::nhap-xuat-tieng-viet-trong-console-cmd-exe.cpp
    - http://diendan.congdongcviet.com/threads/t401536::chu-quoc-ngu.cpp

    Trong một số trình biên dịch cũ, vấn đề này -nhập xuất tiếng Việt - rất khó; nay đã khác, như chúng ta thấy ở trên

  4. #4
    Ngày gia nhập
    08 2017
    Bài viết
    951

    Ở #2 trên, hình nhúng bị xoá mất, không rõ lý do (ở web site chứa, https://s7.postimg.org/x2qbwerzf/Tv_Cs.jpg)

    Post lại, biên dịch
    Code:
    css /nologo Tv_cs.cs
    Tv_cs
    và chạy thử:


    https://s6.postimg.cc/xkq1fyj0h/Tv_Cs.jpg
    ...

  5. #5
    Ngày gia nhập
    08 2017
    Bài viết
    951

    Nếu quan tâm và làm việc với những TBD cũ, có thể tìm những ứng dụng cũ như
    - UniKey c++,
    - Tnt Delphi
    ...

  6. #6
    Ngày gia nhập
    08 2017
    Bài viết
    951

    Mặc định Nhập xuất tiếng Việt

    Trong những IDE / TBD cũ, không hỗ trợ utf-8, người ta phải dùng mã utf-7 ...

    Pascal Code:
    1.       //...
    2.       errCap := UTF7ToWideString('L+Htc-i k+Hr8-t n+HtE-i'); //Lỗi kết nối
    3.       errMsg := UTF7ToWideString('Kh+APQ-ng m+Ht8 +AREBsB7j-c c+HtU-ng COM. ' + //Không mở được cổng COM.
    4.                                  'C+APM th+HsM ch+AbABoQ-ng tr+AOw-nh kh+AOE-c +ARE-ang d+APk-ng'); //Có thể chương trình khác đang dùng
    5.       MessageBoxW(Handle, PWideChar(errMsg), PWideChar(errCap), MB_ICONWARNING or MB_OK);
    6.       //..

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn