Vitamin C (ascorbic acid)

Vitamin C (ascorbic acid)Vitamin C is also known as ascorbic acid and L-ascorbic acid. Most animals are able to synthesise vitamin C by means of a stepwise, enzymatic conversion of glucose (dextrose). However, humans, apes, guinea pigs, and certain other animals have lost this ability during evolution. The largest concentrations of vitamin C are found in the white cells of the immune defence, the pancreas, the testicles, and the ovaries. Vitamin C is water-soluble and as it is not stored in the body, we depend on regular intake of the nutrient. Vitamin C is destroyed by light, heat, boiling, freezing, preservation, and storage (including winter storage of vegetables and fruit).

Functions and importance for

Deficiencies and poor utilisation may be caused by

Deficiency symptoms

The body's collagen and connective tissue get a loose structure that may lead to numerous symptoms, such as:

Bruising, bleeding gums, nosebleed, and poor would healing. This is a condition known as subclinical scurvy.

Scurvy, the classic deficiency disease and extreme consequence of vitamin C deficiency, leads to lethal internal hemorrhaging. This condition used to be widespread among sailors and people in the underdeveloped countries.

Also observed:

Sources

Mainly fruit and berries but also vegetables like cabbage, bell pepper, horseradish, spinach, garlic, and herbs.

Vitamin C content in mg per 100 grams

Acerola - tropical fruit 1.300-1.700
Rosehip 1.250
Bell pepper 191
Brussels sprouts 90-150
Oranges 50


Recommended daily allowance (RDA)

Adults: 11 years of age and older: 80 mg
Children: 1-10 years of age: 40 mg

Nonacid supplements

Salts of ascorbic acid are called ascorbates and are used in nonacid supplements with sodium ascorbate or calcium ascorbate. Nonacid supplements are gentler towards the mucous membranes in the gastro-intestinal tract.

Increased need

Contraindications of supplementation

Overdosing - side effects

Symptoms of overdosing are rare, as excess amounts of vitamin C are excreted in the urine. Ingestion of greater quantities than two grams daily (especially as pure ascorbic acid) may cause diarrhea, nausea, irritated urine bladder, and increased risk of kidney stones. It appears to be more of a theoretical risk, however, as kidney stone cases as a result of taking ascorbic acid are not seen in practice.

Synthetic manufacturing and additives

It is very easy to manufacture ascorbic acid and ascorbates synthetically. These compounds are mainly used in vitamin C supplements. The food industry uses these substances as antioxidants and harmless preservatives to prevent oxidation. Their E numbers are 300, 301, 302, and 304

7.606MBMemory Usage217msRequest Duration
Joomla! Version4.4.4
PHP Version8.3.6
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
8.0.40-0ubuntu0.24.04.1
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_0900_ai_ci
$_GET
array:9 [ "option" => "com_content" "view" => "article" "id" => "476:vitamin-c-ascorbic-acid" ...
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:41 [ "HTTP_AUTHORIZATION" => "" "HTTPS" => "on" "SSL_TLS_SNI" => "healthandscience.eu" ...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1753527538 "last" => 1753527538...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
plg_system_languagefilter
array:1 [ "language" => "en-GB" ]
  • afterLoad (455.98KB) (1.29ms)
  • afterInitialise (1.28MB) (47.06ms)
  • afterRoute (827.42KB) (15.02ms)
  • beforeRenderComponent com_content (40.38KB) (280μs)
  • Before Access::preloadComponents (all components) (60.19KB) (332μs)
  • After Access::preloadComponents (all components) (97.34KB) (9.25ms)
  • Before Access::preloadPermissions (com_content) (1.6KB) (16μs)
  • After Access::preloadPermissions (com_content) (3.29MB) (33.63ms)
  • Before Access::getAssetRules (id:907 name:com_content.article.476) (130.65KB) (95μs)
  • After Access::getAssetRules (id:907 name:com_content.article.476) (7.38KB) (54μs)
  • afterRenderComponent com_content (1.05MB) (80.05ms)
  • Before Access::getAssetRules (id:8 name:com_content) (18.52KB) (5.19ms)
  • After Access::getAssetRules (id:8 name:com_content) (6.17KB) (29μs)
  • afterDispatch (14.3KB) (7.86ms)
  • afterRender (255.27KB) (16.03ms)
  • 1 x afterRenderComponent com_content (1.05MB) (36.96%)
    80.05ms
    1 x afterInitialise (1.28MB) (21.73%)
    47.06ms
    1 x After Access::preloadPermissions (com_content) (3.29MB) (15.53%)
    33.63ms
    1 x afterRender (255.27KB) (7.4%)
    16.03ms
    1 x afterRoute (827.42KB) (6.94%)
    15.02ms
    1 x After Access::preloadComponents (all components) (97.34KB) (4.27%)
    9.25ms
    1 x afterDispatch (14.3KB) (3.63%)
    7.86ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (18.52KB) (2.4%)
    5.19ms
    1 x afterLoad (455.98KB) (0.6%)
    1.29ms
    1 x Before Access::preloadComponents (all components) (60.19KB) (0.15%)
    332μs
    1 x beforeRenderComponent com_content (40.38KB) (0.13%)
    280μs
    1 x Before Access::getAssetRules (id:907 name:com_content.article.476) (130.65KB) (0.04%)
    95μs
    1 x After Access::getAssetRules (id:907 name:com_content.article.476) (7.38KB) (0.02%)
    54μs
    1 x After Access::getAssetRules (id:8 name:com_content) (6.17KB) (0.01%)
    29μs
    1 x Before Access::preloadPermissions (com_content) (1.6KB) (0.01%)
    16μs
29 statements were executed, 3 of which were duplicates, 26 unique55.24ms659.41KB
  • SELECT @@SESSION.sql_mode;45μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `has_session` WHERE `session_id` = ?100μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `has_session` WHERE `session_id` = :session_id LIMIT 159μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `has_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)1.28ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `has_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1408μs1.61KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `has_viewlevels`113μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `has_usergroups` AS `a` LEFT JOIN `has_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest1.34ms1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `has_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`593μs3.98KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT * FROM `has_languages` WHERE `published` = 1 ORDER BY `ordering` ASC3.89ms2.33KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `element`,`name`,`client_id`,`extension_id` FROM `has_extensions` WHERE `type` = 'language' AND `state` = 0 AND `enabled` = 1242μs1008B/libraries/src/Language/LanguageHelper.php:213Copy
  • SELECT * FROM has_rsform_config181μs1.06KB/administrator/components/com_rsform/helpers/config.php:52Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `has_menu` AS `m` LEFT JOIN `has_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`776μs165.8KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `has_template_styles` AS `s` LEFT JOIN `has_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1198μs848B/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `has_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40)3.05ms7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `has_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 015.26ms417.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `has_content`4.57ms1.77KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `has_content` SET `hits` = (`hits` + 1) WHERE `id` = '476'2.43ms1.3KB/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `has_content` AS `a` INNER JOIN `has_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `has_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `has_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `has_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `has_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0 AND `a`.`language` IN (:preparedArray1,:preparedArray2)) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray3,:preparedArray4)1.75ms22.19KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `has_categories` AS `s` INNER JOIN `has_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`393μs4KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `has_contentitem_tag_map` AS `m` INNER JOIN `has_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2) AND `language` IN (:preparedArray3,:preparedArray4)8.26ms4.09KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `has_categories` AS `s` INNER JOIN `has_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`347μs4KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM has_fields AS a LEFT JOIN `has_languages` AS l ON l.lang_code = a.language LEFT JOIN has_users AS uc ON uc.id=a.checked_out LEFT JOIN has_viewlevels AS ag ON ag.id = a.access LEFT JOIN has_users AS ua ON ua.id = a.created_user_id LEFT JOIN has_fields_groups AS g ON g.id = a.group_id LEFT JOIN `has_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform AND `a`.`language` IN (:preparedArray8,:preparedArray9) ORDER BY a.ordering ASC1.3ms4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `has_categories` AS `s` INNER JOIN `has_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`399μs4KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT custom_data FROM has_extensions WHERE element = 'yootheme' AND folder = 'system' LIMIT 1906μs536B/templates/yootheme/packages/platform-joomla/src/Storage.php:30Copy
  • SELECT `language`,`id` FROM `has_menu` WHERE `home` = '1' AND `published` = 1 AND `client_id` = 0703μs704B/libraries/src/Language/Multilanguage.php:123Copy
  • SELECT `c2`.`language`,CONCAT_WS(':', `c2`.`id`, `c2`.`alias`) AS `id`,CONCAT_WS(':', `ca`.`id`, `ca`.`alias`) AS `catid` FROM `has_content` AS `c` INNER JOIN `has_associations` AS `a` ON `a`.`id` = `c`.`id` AND `a`.`context` = :context INNER JOIN `has_associations` AS `a2` ON `a`.`key` = `a2`.`key` INNER JOIN `has_content` AS `c2` ON `a2`.`id` = `c2`.`id` INNER JOIN `has_categories` AS `ca` ON `c2`.`catid` = `ca`.`id` AND `ca`.`extension` = :extension2 WHERE `c`.`id` = :id AND c2.access IN (1,5) AND c2.language != 'en-GB' AND (c2.publish_up IS NULL OR c2.publish_up <= '2025-07-26 10:58:58') AND (c2.publish_down IS NULL OR c2.publish_down >= '2025-07-26 10:58:58') AND c2.state = 13.18ms1.47KBParams/libraries/src/Language/Associations.php:145Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `has_scheduler_tasks` AS `a` WHERE `a`.`state` = 1122μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `has_session` WHERE `session_id` = ?104μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `has_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?3.26ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy