الفرق بين المراجعتين لصفحة: «Node.js/string decoder»
رهف-النجار (نقاش | مساهمات) انشاء توثيق String Decoder |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
(7 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
وحدة فك الترميز string_decoder توفر واجهة برمجية API لفك ترميز كائنات Buffer إلى سلاسل بطريقة تصون المحارف متعددة البايتات المرمزة بواسطة UTF-8 و UTF-16. يمكن الوصول إلى هذه الوحدة باستخدام:<syntaxhighlight lang="javascript"> | <noinclude>{{DISPLAYTITLE:الوحدة String Decoder في Node.js}}</noinclude> | ||
وحدة فك الترميز <code>string_decoder</code> توفر واجهة برمجية API لفك ترميز كائنات <code>Buffer</code> إلى سلاسل بطريقة تصون المحارف متعددة البايتات المرمزة بواسطة UTF-8 و UTF-16. يمكن الوصول إلى هذه الوحدة باستخدام:<syntaxhighlight lang="javascript"> | |||
const { StringDecoder } = require('string_decoder'); | const { StringDecoder } = require('string_decoder'); | ||
</syntaxhighlight>المثال التالي يعرض الاستخدام الأساسي لصنف StringDecoder:<syntaxhighlight lang="javascript"> | </syntaxhighlight>المثال التالي يعرض الاستخدام الأساسي لصنف <code>StringDecoder</code>:<syntaxhighlight lang="javascript"> | ||
const { StringDecoder } = require('string_decoder'); | const { StringDecoder } = require('string_decoder'); | ||
const decoder = new StringDecoder('utf8'); | const decoder = new StringDecoder('utf8'); | ||
سطر 10: | سطر 11: | ||
const euro = Buffer.from([0xE2, 0x82, 0xAC]); | const euro = Buffer.from([0xE2, 0x82, 0xAC]); | ||
console.log(decoder.write(euro)); | console.log(decoder.write(euro)); | ||
</syntaxhighlight>عندما تُكتَب نسخة من الصنف Buffer إلى نسخة من الصنف | </syntaxhighlight>عندما تُكتَب نسخة من الصنف <code>Buffer</code> إلى نسخة من الصنف <code>StringDecoder</code>، ستُستخدم ذاكرة مؤقتة داخلية لضمان أنّ السلسلة مفكوكة الترميز لا تحوي أي محارف متعددة البايت غير مكتملة.حيث تُحفظ في الذاكرة المؤقتة حتى الإستدعاء التالي للتابع <code>stringDecoder.write()</code> أو حتى يستدعى التابع <code>stringDecoder.end()</code>. | ||
في المثال التالي، البايتات الثلاث مرمّزة بترميز UTF-8 لرمز اليورو الأوروبي (€)، تُكتب عبر ثلاث عمليات منفصلة:<syntaxhighlight lang="javascript"> | في المثال التالي، البايتات الثلاث مرمّزة بترميز UTF-8 لرمز اليورو الأوروبي (<code>€</code>)، تُكتب عبر ثلاث عمليات منفصلة:<syntaxhighlight lang="javascript"> | ||
const { StringDecoder } = require('string_decoder'); | const { StringDecoder } = require('string_decoder'); | ||
const decoder = new StringDecoder('utf8'); | const decoder = new StringDecoder('utf8'); | ||
سطر 21: | سطر 22: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == الصنف StringDecoder == | ||
=== | === <code>new StringDecoder([encoding])</code> === | ||
أُضيف في الإصدار: 0.1.99 | أُضيف في الإصدار: 0.1.99 | ||
* < encoding < | * <code>encoding</code> [[JavaScript/String|<string>]]: ترميز المحارف الذي سيستخدمه الصنف <code>StringDecoder</code>. '''القيمة الافتراضية:''' <code>'utf8'</code> ينشئ نسخة جديدة من الصنف <code>StringDecoder</code>. | ||
=== | === <code>stringDecoder.end([buffer])</code> === | ||
أُضيف في الإصدار:0.9.3 | أُضيف في الإصدار: 0.9.3 | ||
* buffer <Buffer>: نسخة من الصنف Buffer لكي يُفك ترميزها | * <code>buffer</code> [[Node.js/buffer|<Buffer>]]: نسخة من الصنف <code>Buffer</code> لكي يُفك ترميزها | ||
* القيمة المعادة: سلسلة نصية <string>. | * القيمة المعادة: سلسلة نصية [[JavaScript/String|<string>]]. | ||
يعيد أي مدخلات متبقية محفوظة في الذاكرة المؤقتة الداخلية كسلسلة نصية، ستُبدّل محارف ال UTF-8 و UTF-16 غير المكتملة إلى بديل مناسب لترميز المحارف المستخدم. | يعيد أي مدخلات متبقية محفوظة في الذاكرة المؤقتة الداخلية كسلسلة نصية، ستُبدّل محارف ال UTF-8 و UTF-16 غير المكتملة إلى بديل مناسب لترميز المحارف المستخدم. | ||
إذا كان الوسيط buffer متوافرًا، سوف يُنجز استدعاء أخير واحد للتابع stringDecoder.write() قبل إعادة باقي الدخل. | إذا كان الوسيط <code>buffer</code> متوافرًا، سوف يُنجز استدعاء أخير واحد للتابع <code>stringDecoder.write()</code> قبل إعادة باقي الدخل. | ||
=== | === <code>stringDecoder.write(buffer)</code> === | ||
سجل التغييرات | |||
{| class="wikitable" | {| class="wikitable mw-collapsible" | ||
!الإصدار | !الإصدار | ||
!التغييرات | !التغييرات | ||
سطر 47: | سطر 48: | ||
|أضيف في: v0.1.99 | |أضيف في: v0.1.99 | ||
|} | |} | ||
* | * <code>buffer</code> [[Node.js/buffer|<Buffer>]]: نسخة من الصنف <code>Buffer</code> لكي يُفك ترميزها. | ||
* القيمة المُعادة: سلسلة نصية [[JavaScript/String|<string>]]. | |||
تعاد سلسة نصية مفكوكة الترميز، ضامنة أنّ أي محارف غير مكتملة في نهاية المعامل <code>Buffer</code> سوف تُهمل في السلسلة المعادة وتخزن في ذاكرة مؤقتة داخلية للاستدعاء القادم للتابع <code>stringDecoder.write()</code> أو <code>stringDecoder.end()</code>. | |||
== مصادر == | |||
* [https://nodejs.org/dist/latest-v10.x/docs/api/string_decoder.html صفحة الوحدة String Decoder في توثيق Node.js الرسمي.] | * [https://nodejs.org/dist/latest-v10.x/docs/api/string_decoder.html صفحة الوحدة String Decoder في توثيق Node.js الرسمي.] | ||
[[تصنيف:Node.js|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 11:15، 23 أكتوبر 2018
وحدة فك الترميز string_decoder
توفر واجهة برمجية API لفك ترميز كائنات Buffer
إلى سلاسل بطريقة تصون المحارف متعددة البايتات المرمزة بواسطة UTF-8 و UTF-16. يمكن الوصول إلى هذه الوحدة باستخدام:
const { StringDecoder } = require('string_decoder');
المثال التالي يعرض الاستخدام الأساسي لصنف StringDecoder
:
const { StringDecoder } = require('string_decoder');
const decoder = new StringDecoder('utf8');
const cent = Buffer.from([0xC2, 0xA2]);
console.log(decoder.write(cent));
const euro = Buffer.from([0xE2, 0x82, 0xAC]);
console.log(decoder.write(euro));
عندما تُكتَب نسخة من الصنف Buffer
إلى نسخة من الصنف StringDecoder
، ستُستخدم ذاكرة مؤقتة داخلية لضمان أنّ السلسلة مفكوكة الترميز لا تحوي أي محارف متعددة البايت غير مكتملة.حيث تُحفظ في الذاكرة المؤقتة حتى الإستدعاء التالي للتابع stringDecoder.write()
أو حتى يستدعى التابع stringDecoder.end()
.
في المثال التالي، البايتات الثلاث مرمّزة بترميز UTF-8 لرمز اليورو الأوروبي (€
)، تُكتب عبر ثلاث عمليات منفصلة:
const { StringDecoder } = require('string_decoder');
const decoder = new StringDecoder('utf8');
decoder.write(Buffer.from([0xE2]));
decoder.write(Buffer.from([0x82]));
console.log(decoder.end(Buffer.from([0xAC])));
الصنف StringDecoder
new StringDecoder([encoding])
أُضيف في الإصدار: 0.1.99
encoding
<string>: ترميز المحارف الذي سيستخدمه الصنفStringDecoder
. القيمة الافتراضية:'utf8'
ينشئ نسخة جديدة من الصنفStringDecoder
.
stringDecoder.end([buffer])
أُضيف في الإصدار: 0.9.3
يعيد أي مدخلات متبقية محفوظة في الذاكرة المؤقتة الداخلية كسلسلة نصية، ستُبدّل محارف ال UTF-8 و UTF-16 غير المكتملة إلى بديل مناسب لترميز المحارف المستخدم.
إذا كان الوسيط buffer
متوافرًا، سوف يُنجز استدعاء أخير واحد للتابع stringDecoder.write()
قبل إعادة باقي الدخل.
stringDecoder.write(buffer)
سجل التغييرات
الإصدار | التغييرات |
---|---|
v8.0.0 | كل محرف غير متوفر يستبدل الآن بمحرف بديل فريد عوضًا عن واحد لكل بايت منفرد. |
v0.1.99 | أضيف في: v0.1.99 |
buffer
<Buffer>: نسخة من الصنفBuffer
لكي يُفك ترميزها.
- القيمة المُعادة: سلسلة نصية <string>.
تعاد سلسة نصية مفكوكة الترميز، ضامنة أنّ أي محارف غير مكتملة في نهاية المعامل Buffer
سوف تُهمل في السلسلة المعادة وتخزن في ذاكرة مؤقتة داخلية للاستدعاء القادم للتابع stringDecoder.write()
أو stringDecoder.end()
.