- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试以编程方式创建韩语句子,但要正确执行此操作意味着我需要一种方法来确定哪些 Hangul Jamo unicode 字符构成了每个 Hangul Syllable unicode 字符。更具体地说,我想收集一组 Hangul Jamo 字符,并弄清楚如何将它们转换为 Hangul Syllable 字符。简单地连接字符串是行不通的,我查看了代码点值,看看 Hangul Jamo 的代码点和组合的 Hangul Syllable 之间是否存在明显的关系,但我没有看到。例如,天真地添加代码点不会导致正确的答案:
console.log(('ㄱ'.codePointAt(0) + 'ㅏ'.codePointAt(0)) === '가'.codePointAt(0));
它不记录 true
,这在查看 Hangul Jamo 的 Unicode 图表时也是不言而喻的。和 Hangul Syllables .到目前为止,我还没有在我的搜索中找到答案,但一定有一种方法可以以编程方式将部分转换为整个音节,对吗?
最佳答案
我找到了答案 on Wikipedia .按照字符表的链接,但这里是使用的公式:
To find Hangul Syllables in Unicode, you can apply a simple formula. The formula and tables are as follows: [{(initial) × 588} + {(medial) × 28} + (final)] + 44032
Here's an example of a really crappy random Korean sentence generator I threw together on JSFiddle .我使用结束字符的值(下面的最终 randFin
值)来确定单词的最后一个音节是以元音还是辅音结尾。这决定了在生成的(几乎肯定无法理解的)句子中它后面的助词的形式。它在 getRandomKWord
方法中使用了 unicode 公式:
var getRandomInt = function(n, o) {
var min = Math.ceil(n);
var max = Math.floor(o);
return Math.floor(Math.random() * (max - min)) + min;
};
var getRandomKWord = function() {
var word = '';
var num = getRandomInt(1, 3);
for (var i = 0; i < num; i++) {
var randInit = getRandomInt(0, 19) * 588;
var randMed = getRandomInt(0, 21) * 28;
var randFin = getRandomInt(0, 28);
var hangulFormula = randInit + randMed + randFin + 44032;
word = word + String.fromCodePoint(hangulFormula);
}
return { word: word, final: randFin };
};
var title = document.getElementById('title');
var subject = getRandomKWord();
var object = getRandomKWord(); // don't use 'object' as a variable name
var verb = getRandomKWord();
var subParticle = subject.final ? '는' : '은';
var objParticle = object.final ? '를' : '을';
var text = subject.word +
subParticle +
object.word +
objParticle +
verb.word +
'습니다.';
title.innerText = text;
<h1 id='title'></h1>
关于javascript - 在 JavaScript 中将 Hangul Jamo 转换为 Hangul 音节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42478455/
我正在尝试以编程方式创建韩语句子,但要正确执行此操作意味着我需要一种方法来确定哪些 Hangul Jamo unicode 字符构成了每个 Hangul Syllable unicode 字符。更具体
我正在尝试在同一个文件中写出英语、日语和韩语。 这是我的做法: new File("genned/test123.txt").write("안녕하세요 hello こんにち", "utf8") 生成的
许多日语字体都有标准 ASCII 拉丁字符的特殊固定宽度变体,其宽度是字体的汉字/假名字符标准固定宽度的一半。这样,您只需为每个日语字符使用 2 个拉丁字符即可垂直排列拉丁语和日语文本。这被称为“半角
我想在 java 中验证“Hangul-Korean”文本。 我将在“String”中包含“Korean”文本并调用“matches()”来验证字符串。 正则表达式是为了检测该文本是否为“Korean
我是一名优秀的程序员,十分优秀!