Trang 1 trên tổng số 4 123... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 36 kết quả

Đề tài: Tiếng Việt cho i tờ

  1. #1
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    Mặc định Tiếng Việt cho i tờ

    Vietnamese for IT

    Mời các thành viên tham gia.

    Phọt mô xa 2017

  2. #2
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    311

    Câu hỏi mở màn, lớp CultureInfo có ảnh hưởng gì đến Graphics.DrawString không?

  3. #3
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    Nó tuỳ thuộc vào cái gì, chỗ nào.
    - Nó có thể là tham số, mang giá trị mặc định, thường thấy trong các resources (deSigner)
    Visual C# Code:
    1.         public static Bitmap hsAbc0(){
    2.             return (Bitmap)Resources.RM.GetObject("backgroundA", Resources.ci);
    3.         }
    - Nó có thể tác động lên cả ứng dụng:
    Visual C# Code:
    1.     using System;
    2.     using System.Threading;
    3.     using System.Globalization;
    4.      
    5.     class Program{
    6.         static void Main(){
    7.             Thread.CurrentThread.CurrentCulture = new CultureInfo("vi-VN"); //Vietnamese
    8.             //
    9.             DateTime ymd = new DateTime(2015, 11, 21);//Year, Month, Day
    10.             //string kq = ymd.ToString("Y"); //Year : "Tháng Mười Một 2015"
    11.             string kq = ymd.ToString("M"); //Month : "21 Tháng Mười Một"
    12.             //"Tháng Mười Một 2015"
    13.             Console.WriteLine("Ngày 21/11/2015, netFx dịch (Culture + fmt):");
    14.             Console.WriteLine(kq);
    15.             Console.WriteLine("\nSTT === Char === Code(decimal).");
    16.             //Console.WriteLine("STT === Char === Code(Hex).");
    17.             for (int i = 0; i < kq.Length; i++)
    18.                 Console.WriteLine("{0,2:d} {1,8:c} {2,10:d}", i, kq[i], (int)kq[i]);
    19.                 //Console.WriteLine("{0,2:d} {1,8:c} {2,10:X}", i, kq[i], (int)kq[i]);
    20.             Console.Write("\nDone, press enter to quit ..");Console.ReadLine();
    21.         }
    22.     }
    http://ideone.com/rjHGzp

    Phọt mô xa 2017

  4. #4
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    311

    Thử chạy code sau
    Form1.cs
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Text;
    7. using System.Windows.Forms;
    8. using System.Threading;
    9. using System.Globalization;
    10.  
    11. namespace CultureInfoUsing2
    12. {
    13.     public partial class Form1 : Form
    14.     {
    15.         public Form1()
    16.         {
    17.             InitializeComponent();
    18.             Thread.CurrentThread.CurrentCulture = new CultureInfo("vi-VN"); //Vietnamese
    19.             //
    20.             DateTime ymd = new DateTime(2015, 11, 21);//Year, Month, Day
    21.             //string kq = ymd.ToString("Y"); //Year : "Tháng Mười Một 2015"
    22.             string kq = ymd.ToString("M"); //Month : "21 Tháng Mười Một"
    23.             textBox1.Text ="\r\n"+ kq+"\r\n";
    24.             for (int i = 0; i < kq.Length; i++)
    25.                 textBox1.Text += kq[i] + " , ";
    26.            
    27.             //viết xâu bằng mã unicode tổ hợp
    28.             string hello = "Xin chào tất cả các bạn";
    29.             textBox1.Text+= "\r\n"+ hello+"\r\n";
    30.             for (int i = 0; i < hello.Length; i++)
    31.                 textBox1.Text += hello[i] + " , ";
    32.  
    33.             //viết xâu bằng mã unicode dựng sẵn
    34.             string hello2 = "Xin chào tất cả các bạn";
    35.             textBox1.Text += "\r\n"+hello2 + "\r\n";
    36.             for (int i = 0; i < hello2.Length; i++)
    37.                 textBox1.Text += hello2[i] + " , ";
    38.         }
    39.     }
    40. }
    in chuỗi ngày tháng format bằng ToString(), sau đó in từng kí tự
    in lời chào bằng mã unicode tổ hợp, rồi in từng kí tự
    in lời chào bằng mã unicode dựng sẵn rồi in từng kí tự
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		matiengvietcthang.png
Lần xem:	13
Size:		47.4 KB
ID:		51811
    từ đó kết luận các chuỗi tiếng Việt là kết quả xử lí của CultureInfo được viết theo mã unicode tổ hợp

  5. #5
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    Thay:
    Visual C# Code:
    1.             Thread.CurrentThread.CurrentCulture = new CultureInfo("vi-VN"); //Vietnamese
    2.             //...
    bắng:
    Visual C# Code:
    1.             Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); //USA
    2.             //...
    nó có in bằng unicode tổ hợp không ?

    Phọt mô xa 2017

  6. #6
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    311

    Mặc định Tiếng Việt cho i tờ

    Trích dẫn Nguyên bản được gửi bởi fms17 Xem bài viết
    Thay:
    Visual C# Code:
    1.             Thread.CurrentThread.CurrentCulture = new CultureInfo("vi-VN"); //Vietnamese
    2.             //...
    bắng:
    Visual C# Code:
    1.             Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); //USA
    2.             //...
    nó có in bằng unicode tổ hợp không ?

    Phọt mô xa 2017
    Hỏi lạ vậy, en-US thì nó ra tiếng Anh mà

  7. #7
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Hỏi lạ vậy, en-US thì nó ra tiếng Anh mà
    Cứ từ từ, đừng nóng !

    Mà nè unicode tổ hợp là chi vậy, tôi có vài chuỗi rất độc, nhìn rất ngắn nhưng thực ra nó lại dài - hỗn hợp unPrinter gây hiệu ứng đặc biệt.
    Rảnh tìm, giờ bận túi bụi.

    Cứ từ từ, ...

    Phọt mô xa 2017

  8. #8
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    311

    Trích dẫn Nguyên bản được gửi bởi fms17 Xem bài viết
    Cứ từ từ, đừng nóng !

    Mà nè unicode tổ hợp là chi vậy, tôi có vài chuỗi rất độc, nhìn rất ngắn nhưng thực ra nó lại dài - hỗn hợp unPrinter gây hiệu ứng đặc biệt.
    Rảnh tìm, giờ bận túi bụi.

    Cứ từ từ, ...

    Phọt mô xa 2017
    Theo tôi hiểu thì thế này, tổ hợp tức là tổ hợp 2 ký tự, 1 kí tự là nguyên âm (có thể có dấu mũ móc trăng hoặc không), và 1 kí tự là dấu thanh đi liền sau nguyên âm
    dựng sẵn xem nguyên âm có dấu (mũ hoặc thanh hoặc cả 2) là một ký tự duy nhất, "ắ" là 1 ký tự, "ặ" là một kí tự khác
    còn unicode có nghĩa là mã giành 2 byte cho một kí tự

  9. #9
    Ngày gia nhập
    09 2016
    Bài viết
    1,028

    Đúng một phần nhưng không chính xác.

    Như trên tôi đã nói, có vài chuỗi nhìn rất ngắn nhưng thực ra nó lại khá dài - hỗn hợp unPrinter gây hiệu ứng đặc biệt.
    tổ hợp >= 2 ký tự

    Phọt mô xa 2017

  10. #10
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    311

    Trích dẫn Nguyên bản được gửi bởi fms17 Xem bài viết
    Đúng một phần nhưng không chính xác.

    Như trên tôi đã nói, có vài chuỗi nhìn rất ngắn nhưng thực ra nó lại khá dài - hỗn hợp unPrinter gây hiệu ứng đặc biệt.
    tổ hợp >= 2 ký tự

    Phọt mô xa 2017
    Cái tôi nói là mã của ký tự, mã kí tự unicode là 2 byte
    còn thực tế thì chuỗi là một dãy các byte, tùy theo kiểu encoding mà mỗi mã kí tự được biểu diễn theo những cách khác nhau, đối với kí tự unicode thì tôi biết 2 kiểu encoding là unicode encoding và utf8 encoding, đối với kiểu trước thì 2 byte tương ứng 2 byte, không có thay đổi, với kiểu sau thì các kí tự mã unicode có lúc biểu diễn bằng 1 byte, có lúc 2 byte, có lúc 3 byte... , nó lấy vài bit cuối của mỗi byte để xác định xem byte tiếp theo có thuộc kí tự không hay chuyển sang kí tự mới, cũng do cách biểu diễn như vậy mà 1 mã ký tự unicode có thể được biểu diễn bằng nhiều chuỗi byte khác nhau, vì vậy mới sinh ra cái gọi là normalize string

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