JamesWilson
JamesWilson

Reputation: 4850

Unicode range for Vietnamese

The Google Fonts' Source Sans Pro implementation contains a Vietnamese subsetting, however, it contains various missing glyphs, as discussed in Issue #90 of the Source Sans Pro github account, but closed by the maintainers.

The problem is visible in the following snippet.

/*
 Fall back to serif so the 
 missing glyphs are more
 easily visible
*/
body {
  font-family: "Source Sans Pro", serif;
  font-size: 25px;
}
p {
  margin: .1em 0 1em;
}
small {
  margin: 0;
  font-weight: 400;
  font-size: 12px;
  color: #999;
  border-bottom: 1px solid #ccc;
}
.w200 { font-weight: 200; }
.w300 { font-weight: 300; }
.w400 { font-weight: 400; }
.w600 { font-weight: 600; }
.w700 { font-weight: 700; }
.w900 { font-weight: 900; }
<link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700,900&amp;subset=vietnamese" media="all">

<small>Source Sans Pro Vietnamese 200</small>
<p class="w200">Đánh giá nhanh + khảo sát riêng: Hướng dẫn bắt đầu nhanh.  Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Sau đây là cách thực hiện. Bắt đầu với Đánh giá nhanh + khảo sát riêng. Nhấp vào đây. Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Đánh giá nhanh + khảo sát riêng là gì? Bước 2: Chọn câu hỏi. Bước 3: Đăng khảo sát. Bước 4: Xem kết quả. Tùy chỉnh Khảo sát riêng của quý vị ngay.</p>

<small>Source Sans Pro Vietnamese 300</small>
<p class="w300">Đánh giá nhanh + khảo sát riêng: Hướng dẫn bắt đầu nhanh.  Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Sau đây là cách thực hiện. Bắt đầu với Đánh giá nhanh + khảo sát riêng. Nhấp vào đây. Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Đánh giá nhanh + khảo sát riêng là gì? Bước 2: Chọn câu hỏi. Bước 3: Đăng khảo sát. Bước 4: Xem kết quả. Tùy chỉnh Khảo sát riêng của quý vị ngay.</p>
 
<small>Source Sans Pro Vietnamese 400</small>
<p class="w400">Đánh giá nhanh + khảo sát riêng: Hướng dẫn bắt đầu nhanh.  Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Sau đây là cách thực hiện. Bắt đầu với Đánh giá nhanh + khảo sát riêng. Nhấp vào đây. Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Đánh giá nhanh + khảo sát riêng là gì? Bước 2: Chọn câu hỏi. Bước 3: Đăng khảo sát. Bước 4: Xem kết quả. Tùy chỉnh Khảo sát riêng của quý vị ngay.</p>
  
<small>Source Sans Pro Vietnamese 600</small>
<p class="w600">Đánh giá nhanh + khảo sát riêng: Hướng dẫn bắt đầu nhanh.  Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Sau đây là cách thực hiện. Bắt đầu với Đánh giá nhanh + khảo sát riêng. Nhấp vào đây. Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Đánh giá nhanh + khảo sát riêng là gì? Bước 2: Chọn câu hỏi. Bước 3: Đăng khảo sát. Bước 4: Xem kết quả. Tùy chỉnh Khảo sát riêng của quý vị ngay.</p>
  
<small>Source Sans Pro Vietnamese 700</small>
<p class="w700">Đánh giá nhanh + khảo sát riêng: Hướng dẫn bắt đầu nhanh.  Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Sau đây là cách thực hiện. Bắt đầu với Đánh giá nhanh + khảo sát riêng. Nhấp vào đây. Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Đánh giá nhanh + khảo sát riêng là gì? Bước 2: Chọn câu hỏi. Bước 3: Đăng khảo sát. Bước 4: Xem kết quả. Tùy chỉnh Khảo sát riêng của quý vị ngay.</p>

<small>Source Sans Pro Vietnamese 900</small>
<p class="w900">Đánh giá nhanh + khảo sát riêng: Hướng dẫn bắt đầu nhanh.  Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Sau đây là cách thực hiện. Bắt đầu với Đánh giá nhanh + khảo sát riêng. Nhấp vào đây. Giờ đây, các nhà nghỉ có thể thu thập đánh giá TripAdvisor và phản hồi riêng của khách bằng một email đơn giản. Đánh giá nhanh + khảo sát riêng là gì? Bước 2: Chọn câu hỏi. Bước 3: Đăng khảo sát. Bước 4: Xem kết quả. Tùy chỉnh Khảo sát riêng của quý vị ngay.</p>
  

I'd like to create and host my own version of Source Sans Pro, using a Vietnamese subsetting because SourceSansPro-Regular.ttf is well over 200K. However, neither fontie nor FontSquirrel provide a one-click way to choose the Vietnamese subsetting.

What are the unicode ranges I would need to specify in the FontSquirrel Advanced UI to produce a functioning Vietnamese webfont?

Is there a definitive list somewhere that can be used for reference?

Upvotes: 3

Views: 13659

Answers (1)

djangodude
djangodude

Reputation: 5690

The vietunicode project has a list of characters that it claims is the "complete set":

aAàÀảẢãÃáÁạẠăĂằẰẳẲẵẴắẮặẶâÂầẦẩẨẫẪấẤậẬbBcCdDđĐeEèÈẻẺẽẼéÉẹẸêÊềỀểỂễỄếẾệỆ fFgGhHiIìÌỉỈĩĨíÍịỊjJkKlLmMnNoOòÒỏỎõÕóÓọỌôÔồỒổỔỗỖốỐộỘơƠờỜởỞỡỠớỚợỢpPqQrRsStTu UùÙủỦũŨúÚụỤưƯừỪửỬữỮứỨựỰvVwWxXyYỳỲỷỶỹỸýÝỵỴzZ

In numeric/Unicode code point terms, that is:

U+0041-U+005A, U+0061-U+007A, U+00C0-U+00C3, U+00C8-U+00CA,
U+00CC-U+00CD, U+00D2-U+00D5, U+00D9-U+00DA, U+00DD, 
U+00E0-U+00E3, U+00E8-U+00EA, U+00EC-U+00ED, U+00F2-U+00F5,
U+00F9-U+00FA, U+00FD, U+0102-U+0103, U+0110-U+0111,
U+0128-U+0129, U+0168-U+0169, U+01A0-U+01A1, U+01AF-U+01B0,
U+1EA0-U+1EF9

A complete font should probably include the full Basic Latin U+0020-U+007E and Latin-1 U+00A0-U+00FF for non-Vietnamese-specific symbols and text that are likely to appear. I also note that the list does not appear to contain U+20AB (DONG SIGN) or U+20AC (EURO SIGN), which I'd include if present in the original fonts, as these may be useful/necessary for dealing with currencies.


Update:

This blog post on int3ractive.com points out that Vietnamese may also be written using additional "composite" characters where a vowel character is followed by a diacritic ghost character to create what looks like a single character on the page, requiring the following range if your font supports it:

U+02C6-U+0323

The complete "optimal" set according to Int3ractive:

U+0020-U+002F, U+0030-U+0039, U+003A-U+0040, U+0041-U+005A,
U+005B-U+0060, U+0061-U+007A, U+007B-U+007E, U+00C0-U+00C3,
U+00C8-U+00CA, U+00CC-U+00CD, U+00D0, U+00D2-U+00D5, 
U+00D9-U+00DA, U+00DD, U+00E0-U+00E3, U+00E8-U+00EA, 
U+00EC-U+00ED, U+00F2-U+00F5, U+00F9-U+00FA, U+00FD,
U+0102-U+0103, U+0110-U+0111, U+0128-U+0129, U+0168-U+0169,
U+01A0-U+01B0, U+1EA0-U+1EF9, U+02C6-U+0323

Upvotes: 9

Related Questions